private void MetricsOutput(IWorkContext context, MetricSampler metrics) { IReadOnlyList <MetricSample> samples = metrics.GetMetrics(true); if (samples.Count == 0) { context.Telemetry.Info(context, "Send - empty metrics"); return; } double total = samples.Sum(x => x.Count); TimeSpan span = TimeSpan.FromSeconds(samples.Sum(x => x.Span.TotalSeconds)); context.Telemetry.Info(context, $"Send: Total: {total}, Span: {span}, TPS:{total / span.TotalSeconds}"); }
private void MetricsOutput(IWorkContext context) { context = context.WithMethodName(); IReadOnlyList <MetricSample> samples = _sampler.GetMetrics(true); if (samples.Count == 0) { context.Telemetry.Info(context, "Receive - empty metrics"); return; } int total = samples.Sum(x => x.Count); _messageCount += total; TimeSpan span = TimeSpan.FromSeconds(samples.Sum(x => x.Span.TotalSeconds)); context.Telemetry.Info(context, $"Receive: Total: {total}, Span: {span}, TPS:{total / span.TotalSeconds}"); }
public void GivenSampler_WhenTestingFast_ShouldHaveSingleSummaryRecord() { const int count = 99; var metrics = new MetricSampler(TimeSpan.FromSeconds(1)); metrics.Start(); Enumerable.Range(0, count) .ForEach(x => metrics.Add(x)); metrics.Stop(); IReadOnlyList <MetricSample> metricsList = metrics.GetMetrics(); metricsList.Count().Should().Be(1); int n = count - 1; float sumOfNumbers = (n * (n + 1)) / 2; metricsList.Max(x => x.Value).Should().Be(sumOfNumbers); metricsList.Max(x => x.Count).Should().Be(count); }