public void CollectResponseTelemetry(IHttpRequestInformation requestInformation, IHttpResponseInformation responseInformation, IHttpRequestTelemetry requestTelemetry) { long totalRequests; long totalData; long minResponseSizeEncountered; long maxResponseSizeEncountered; // Capture and update the neweste metrics based on this request lock (_syncObj) { ++_totalRequests; totalRequests = _totalRequests; _totalData += responseInformation.ResponseBodySizeInBytes; totalData = _totalData; _maxResponseSizeEncountered = Math.Max(_maxResponseSizeEncountered, responseInformation.ResponseBodySizeInBytes); maxResponseSizeEncountered = _maxResponseSizeEncountered; _minResponseSizeEncountered = Math.Min(_minResponseSizeEncountered, responseInformation.ResponseBodySizeInBytes); minResponseSizeEncountered = _minResponseSizeEncountered; } AddTotalRequestsTelemetry(totalRequests, requestTelemetry); AddCurrentRequestResponseSizeTelemetry(responseInformation.ResponseBodySizeInBytes, requestTelemetry); AddMaxEncounteredTelemetry(maxResponseSizeEncountered, requestTelemetry); AddMinEncounteredTelemetry(minResponseSizeEncountered, requestTelemetry); AddAverageResponseSizeTelemetry(totalData, totalRequests, requestTelemetry); }
public void CollectResponseTelemetry(IHttpRequestInformation requestInformation, IHttpResponseInformation responseInformation, IHttpRequestTelemetry requestTelemetry) { var dataPoint = new HttpRequestTelemetryDataPoint { MetricName = "Total Processing Time", Description = "Total time server spent processing the http request, in milliseconds", Unit = "ms", Value = (DateTime.Now - requestInformation.RequestStartTime).Milliseconds.ToString() }; requestTelemetry.AddDataPoint(dataPoint); }
public void CollectResponseTelemetry(IHttpRequestInformation requestInformation, IHttpResponseInformation responseInformation, IHttpRequestTelemetry requestTelemetry) { var dataPoint = new HttpRequestTelemetryDataPoint { MetricName = "Telemetry Processing Overhead Time", Description = "Total time the agent spent processing telemetry, in milliseconds", Unit = "ms", Value = requestInformation.TelemetryProcessingOverheadTime.TotalMilliseconds.ToString(CultureInfo .InvariantCulture) }; requestTelemetry.AddDataPoint(dataPoint); }
public void ExecuteCollectors(IHttpRequestInformation requestInformation, IHttpResponseInformation responseInformation, IHttpRequestTelemetry telemetry) { if (_telemetryCollectorsExecuted) { return; } foreach (var collector in _collectors) { collector.CollectResponseTelemetry(requestInformation, responseInformation, telemetry); } _telemetryCollectorsExecuted = true; }