public void HandleExceptionEvent_RecordsStats() { var options = new MetricsOptions(); var stats = new OpenCensusStats(); var tags = new OpenCensusTags(); var observer = new HttpClientCoreObserver(options, stats, tags, null); var req = GetHttpRequestMessage(); var resp = GetHttpResponseMessage(HttpStatusCode.InternalServerError); Activity act = new Activity("Test"); act.Start(); Thread.Sleep(1000); act.SetEndTime(DateTime.UtcNow); observer.HandleExceptionEvent(act, req); observer.HandleExceptionEvent(act, req); var reqData = stats.ViewManager.GetView(ViewName.Create("http.client.requests")); var aggData1 = reqData.SumWithTags() as IDistributionData; Assert.InRange(aggData1.Mean, 995.0, 1005.0); Assert.InRange(aggData1.Max, 995.0, 1005.0); reqData = stats.ViewManager.GetView(ViewName.Create("http.client.requests.count")); var aggData2 = reqData.SumWithTags() as ISumDataLong; Assert.Equal(2, aggData2.Sum); act.Stop(); }
public void HandleExceptionEvent_RecordsStats() { var options = new MetricsObserverOptions(); var stats = new TestOpenTelemetryMetrics(); var observer = new HttpClientCoreObserver(options, stats, null); var factory = stats.Factory; var processor = stats.Processor; var req = GetHttpRequestMessage(); var resp = GetHttpResponseMessage(HttpStatusCode.InternalServerError); var act = new Activity("Test"); act.Start(); Task.Delay(1000).Wait(); act.SetEndTime(DateTime.UtcNow); observer.HandleExceptionEvent(act, req); observer.HandleExceptionEvent(act, req); factory.CollectAllMetrics(); var timeSummary = processor.GetMetricByName <double>("http.client.request.time"); Assert.NotNull(timeSummary); var average = timeSummary.Sum / timeSummary.Count; Assert.InRange(average, 990.0, 1200.0); Assert.InRange(timeSummary.Max, 990.0, 1200.0); var countSummary = processor.GetMetricByName <long>("http.client.request.count"); Assert.Equal(2, countSummary.Count); act.Stop(); }