public void HistogramDistributeToAllBucketsCustom() { var boundaries = new double[] { 10, 20 }; var histogramPoint = new MetricPoint(AggregationType.Histogram, DateTimeOffset.Now, null, null, boundaries); // 5 recordings <=10 histogramPoint.Update(-10); histogramPoint.Update(0); histogramPoint.Update(1); histogramPoint.Update(9); histogramPoint.Update(10); // 2 recordings >10, <=20 histogramPoint.Update(11); histogramPoint.Update(19); histogramPoint.TakeSnapshot(true); // Sum of all recordings Assert.Equal(40, histogramPoint.DoubleValue); // Count = # of recordings Assert.Equal(7, histogramPoint.LongValue); Assert.Equal(boundaries.Length + 1, histogramPoint.BucketCounts.Length); Assert.Equal(5, histogramPoint.BucketCounts[0]); Assert.Equal(2, histogramPoint.BucketCounts[1]); Assert.Equal(0, histogramPoint.BucketCounts[2]); }
public void HistogramDistributeToAllBucketsDefault() { var histogramPoint = new MetricPoint(AggregationType.Histogram, DateTimeOffset.Now, null, null, Metric.DefaultHistogramBounds); histogramPoint.Update(-1); histogramPoint.Update(0); histogramPoint.Update(2); histogramPoint.Update(5); histogramPoint.Update(8); histogramPoint.Update(10); histogramPoint.Update(11); histogramPoint.Update(25); histogramPoint.Update(40); histogramPoint.Update(50); histogramPoint.Update(70); histogramPoint.Update(75); histogramPoint.Update(99); histogramPoint.Update(100); histogramPoint.Update(246); histogramPoint.Update(250); histogramPoint.Update(499); histogramPoint.Update(500); histogramPoint.Update(999); histogramPoint.Update(1000); histogramPoint.Update(1001); histogramPoint.Update(10000000); histogramPoint.TakeSnapshot(true); Assert.Equal(22, histogramPoint.LongValue); for (int i = 0; i < histogramPoint.BucketCounts.Length; i++) { Assert.Equal(2, histogramPoint.BucketCounts[i]); } }
public void HistogramWithOnlySumCount() { var boundaries = new double[] { }; var histogramPoint = new MetricPoint(AggregationType.HistogramSumCount, DateTimeOffset.Now, null, null, boundaries); histogramPoint.Update(-10); histogramPoint.Update(0); histogramPoint.Update(1); histogramPoint.Update(9); histogramPoint.Update(10); histogramPoint.Update(11); histogramPoint.Update(19); histogramPoint.TakeSnapshot(true); var count = histogramPoint.GetHistogramCount(); var sum = histogramPoint.GetHistogramSum(); // Sum of all recordings Assert.Equal(40, sum); // Count = # of recordings Assert.Equal(7, count); // There should be no enumeration of BucketCounts and ExplicitBounds for HistogramSumCount var enumerator = histogramPoint.GetHistogramBuckets().GetEnumerator(); Assert.False(enumerator.MoveNext()); }
public void HistogramDistributeToAllBucketsCustom() { var boundaries = new double[] { 10, 20 }; var histogramPoint = new MetricPoint(AggregationType.Histogram, DateTimeOffset.Now, null, null, boundaries); // 5 recordings <=10 histogramPoint.Update(-10); histogramPoint.Update(0); histogramPoint.Update(1); histogramPoint.Update(9); histogramPoint.Update(10); // 2 recordings >10, <=20 histogramPoint.Update(11); histogramPoint.Update(19); histogramPoint.TakeSnapshot(true); var count = histogramPoint.GetHistogramCount(); var sum = histogramPoint.GetHistogramSum(); // Sum of all recordings Assert.Equal(40, sum); // Count = # of recordings Assert.Equal(7, count); int index = 0; int actualCount = 0; var expectedBucketCounts = new long[] { 5, 2, 0 }; foreach (var histogramMeasurement in histogramPoint.GetHistogramBuckets()) { Assert.Equal(expectedBucketCounts[index], histogramMeasurement.BucketCount); index++; actualCount++; } Assert.Equal(boundaries.Length + 1, actualCount); }
public void HistogramDistributeToAllBucketsDefault() { var histogramPoint = new MetricPoint(AggregationType.Histogram, DateTimeOffset.Now, null, null, Metric.DefaultHistogramBounds); histogramPoint.Update(-1); histogramPoint.Update(0); histogramPoint.Update(2); histogramPoint.Update(5); histogramPoint.Update(8); histogramPoint.Update(10); histogramPoint.Update(11); histogramPoint.Update(25); histogramPoint.Update(40); histogramPoint.Update(50); histogramPoint.Update(70); histogramPoint.Update(75); histogramPoint.Update(99); histogramPoint.Update(100); histogramPoint.Update(246); histogramPoint.Update(250); histogramPoint.Update(499); histogramPoint.Update(500); histogramPoint.Update(999); histogramPoint.Update(1000); histogramPoint.Update(1001); histogramPoint.Update(10000000); histogramPoint.TakeSnapshot(true); var count = histogramPoint.GetHistogramCount(); Assert.Equal(22, count); int actualCount = 0; foreach (var histogramMeasurement in histogramPoint.GetHistogramBuckets()) { Assert.Equal(2, histogramMeasurement.BucketCount); actualCount++; } }
public void HistogramWithOnlySumCount() { var boundaries = new double[] { }; var histogramPoint = new MetricPoint(AggregationType.HistogramSumCount, DateTimeOffset.Now, null, null, boundaries); histogramPoint.Update(-10); histogramPoint.Update(0); histogramPoint.Update(1); histogramPoint.Update(9); histogramPoint.Update(10); histogramPoint.Update(11); histogramPoint.Update(19); histogramPoint.TakeSnapshot(true); // Sum of all recordings Assert.Equal(40, histogramPoint.DoubleValue); // Count = # of recordings Assert.Equal(7, histogramPoint.LongValue); Assert.Null(histogramPoint.BucketCounts); Assert.Null(histogramPoint.ExplicitBounds); }