TelemetryRepositoryTests\HistogramTests.cs (267)
38var sampleTime = s_start.AddMilliseconds(500);
43var point = CreatePoint(s_start, s_start.AddSeconds(1), [3, 0], [100]);
72var merged = MetricInstrumentDataCache.Merge(instrument, instrument, cursors, s_start);
80StartTime = s_start,
92EndTime = s_start.AddMinutes(1),
122var point = CreatePoint(s_start, s_start.AddSeconds(1), [1, 0], [100]);
124var accepted = CreateExemplar(s_start, 1);
156var point = CreatePoint(s_start, s_start.AddMilliseconds(index * 100), [10, 0], [100]);
159point.Exemplars.Add(CreateExemplar(s_start.AddMilliseconds(index * 100 - 50), index));
172Assert.Equal(s_start, snapshot.Start);
173Assert.Equal(s_start.AddMilliseconds(300), snapshot.End);
191var first = CreatePoint(s_start, s_start, [1, 0], [100]);
199var stale = CreatePoint(s_start, s_start, [staleCount, 0], [100]);
236CreatePoint(s_start, s_start.AddMilliseconds(100), [10, 0], [100]),
237CreatePoint(s_start, s_start.AddMilliseconds(200), [20, 0], [100]),
238CreatePoint(s_start, s_start.AddMilliseconds(150), [staleCount, 0], [100]),
239CreatePoint(s_start, s_start.AddMilliseconds(300), [25, 0], [100])
253[(s_start, s_start.AddMilliseconds(100), 10ul),
254(s_start.AddMilliseconds(100), s_start.AddMilliseconds(200), 20ul),
255(s_start.AddMilliseconds(200), s_start.AddMilliseconds(300), 25ul)],
259Assert.True(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, s_start, s_start.AddSeconds(1), out var count));
265Assert.Equal(s_start, rolledUpValue.Start);
266Assert.Equal(s_start.AddMilliseconds(300), rolledUpValue.End);
283CreatePoint(s_start, s_start.AddMilliseconds(100), [10, 0], [100]),
284CreatePoint(s_start, s_start.AddMilliseconds(200), [20, 0], [100]))]);
291CreatePoint(s_start, s_start.AddMilliseconds(150), [staleCount, 0], [100]),
292CreatePoint(s_start, s_start.AddMilliseconds(300), [25, 0], [100]))]);
300Assert.Equal(s_start.AddMilliseconds(200), values[^1].Start);
311CreatePoint(s_start, s_start.AddMilliseconds(100), [10, 0], [100]),
312CreatePoint(s_start.AddMilliseconds(200), s_start.AddMilliseconds(300), [25, 0], [100]),
313CreatePoint(s_start.AddMilliseconds(100), s_start.AddMilliseconds(200), [20, 0], [100]))]);
320Assert.True(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, s_start, s_start.AddSeconds(1), out var count));
330var invalid = CreatePoint(s_start, s_start.AddMilliseconds(100), [1, 0], [100]);
339var valid = CreatePoint(s_start, s_start.AddMilliseconds(200), [1, 0], [100]);
363CreatePoint(DateTime.UnixEpoch, s_start.AddMilliseconds(100), [100, 0, 0], [10, 100]),
364CreatePoint(DateTime.UnixEpoch, s_start.AddMilliseconds(200), [0, 100, 0], [10, 100]))]);
379[(s_start.AddMilliseconds(100), s_start.AddMilliseconds(100), 100ul),
380(s_start.AddMilliseconds(200), s_start.AddMilliseconds(200), 100ul)],
385var chartTime = new DateTimeOffset(s_start.AddSeconds(1));
405point => Assert.Equal(DateTimeToUnixNanoseconds(s_start.AddMilliseconds(100)), point.TimeUnixNano),
406point => Assert.Equal(DateTimeToUnixNanoseconds(s_start.AddMilliseconds(200)), point.TimeUnixNano));
418CreatePoint(s_start, s_start.AddMilliseconds(100), [10, 0], [10]),
419CreatePoint(s_start, s_start.AddMilliseconds(200), [20, 0], [10]),
420CreatePoint(s_start, s_start.AddMilliseconds(200), [30, 0], [10]),
421CreatePoint(s_start, s_start.AddMilliseconds(200), [40, 0], [10]),
422CreatePoint(s_start, s_start.AddMilliseconds(300), [50, 0], [10])
428points[index].Exemplars.Add(CreateExemplar(s_start.AddMilliseconds(50), index + 1));
468var point = CreatePoint(s_start.AddMilliseconds(index * 100), s_start.AddMilliseconds((index + 1) * 100),
471point.Exemplars.Add(CreateExemplar(s_start.AddMilliseconds(index * 100 + 50), index + 1));
489StartTimeUnixNano = DateTimeToUnixNanoseconds(s_start),
490TimeUnixNano = DateTimeToUnixNanoseconds(s_start.AddMilliseconds(500)),
495StartTimeUnixNano = DateTimeToUnixNanoseconds(s_start),
496TimeUnixNano = DateTimeToUnixNanoseconds(s_start.AddMilliseconds(600)),
510Assert.True(ChartDataCalculator.TryCalculatePoint(histogram.Dimensions, s_start, s_start.AddSeconds(1), out var count));
518StartTime = s_start,
519EndTime = s_start.AddSeconds(1)
535var first = CreatePoint(s_start, s_start.AddMilliseconds(100), [10, 0, 0], [10, 100]);
537first.Exemplars.Add(CreateExemplar(s_start.AddMilliseconds(50), 5, [KeyValuePair.Create("delivery", "first")]));
538var updated = CreatePoint(s_start, s_start.AddMilliseconds(100), [0, 20, 0], [20, 200]);
540updated.Exemplars.Add(CreateExemplar(s_start.AddMilliseconds(75), 50, [KeyValuePair.Create("delivery", "retry")]));
591var point = CreatePoint(s_start.AddMilliseconds(index), s_start.AddMilliseconds(index + 1), [100, 0], [10]);
614Assert.True(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, s_start, s_start.AddSeconds(1), out var count));
639CreatePoint(s_start, s_start.AddMilliseconds(100), [100, 0, 0], [10, 100]),
640CreatePoint(s_start.AddMilliseconds(100), s_start.AddMilliseconds(200), [0, 100, 0], [10, 100]),
641CreatePoint(s_start.AddMilliseconds(200), s_start.AddMilliseconds(300), [0, 0, 100], [10, 100])
647var next = CreatePoint(s_start.AddMilliseconds(300), s_start.AddMilliseconds(400), [100, 0, 0], [10, 100]);
694Assert.True(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, s_start, s_start.AddSeconds(1), out var count));
712var timestamp = DateTimeToUnixNanoseconds(s_start);
713var first = CreatePoint(s_start, s_start.AddTicks(2), [100, 0, 0], [10, 100]);
716var second = CreatePoint(s_start, s_start.AddTicks(2), [0, 100, 0], [10, 100]);
764Assert.Equal(omitStart || sameStartTick ? s_start.AddTicks(1) : s_start, value.Start);
770Assert.Equal(s_start.AddTicks(1), value.Start);
773Assert.All(values, value => Assert.Equal(s_start.AddTicks(1), value.End));
775Assert.True(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, s_start, s_start.AddSeconds(1), out var count));
788var timestamp = DateTimeToUnixNanoseconds(s_start);
789var first = CreatePoint(s_start, s_start.AddTicks(2), [100, 0, 0], [10, 100]);
793var second = CreatePoint(s_start, s_start.AddTicks(2), [0, 100, 0], [10, 100]);
837Assert.True(ChartDataCalculator.TryCalculatePoint(imported.Dimensions, s_start, s_start.AddSeconds(1), out var count));
847var point = CreatePoint(DateTime.UnixEpoch, s_start, [1, 0], [100]);
865CreatePoint(s_start, s_start.AddMilliseconds(100), [100, 0, 0], [10, 100]),
866CreatePoint(s_start.AddMilliseconds(100), s_start.AddMilliseconds(200), [0, 100, 0], [10, 100])
889Assert.Equal(s_start, value.Start);
894Assert.Equal(s_start.AddMilliseconds(100), value.Start);
899Assert.True(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, s_start, s_start.AddSeconds(1), out var count));
910CreatePoint(s_start, s_start.AddMilliseconds(100), [1, 8, 1], [10, 100]),
911CreatePoint(s_start.AddMilliseconds(100), s_start.AddMilliseconds(200), [0, 0, 2, 0], [10, 50, 100]))]);
916Assert.True(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, s_start, s_start.AddSeconds(1), out var count));
929CreatePoint(s_start, s_start.AddSeconds(1), [100, 0], [100]),
930CreatePoint(s_start.AddSeconds(1), s_start.AddSeconds(2), [1, 0], [100]))]);
938StartTime = s_start,
939EndTime = s_start.AddSeconds(2),
945Assert.True(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, s_start, s_start.AddSeconds(1), out var count));
947Assert.True(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, s_start.AddSeconds(1), s_start.AddSeconds(2), out count));
964var boundary = s_start.AddMilliseconds(3500);
965var producerStart = resetKind == 3 ? DateTime.UnixEpoch : s_start.AddMilliseconds(1500);
968var reset = CreatePoint(resetProducerStart, s_start.AddMilliseconds(3700),
970var continuation = CreatePoint(resetProducerStart, s_start.AddMilliseconds(3900),
972first.Exemplars.Add(CreateExemplar(s_start.AddMilliseconds(3250), 100, [KeyValuePair.Create("phase", "before")]));
973reset.Exemplars.Add(CreateExemplar(s_start.AddMilliseconds(3600), 1, [KeyValuePair.Create("phase", "reset")]));
974continuation.Exemplars.Add(CreateExemplar(s_start.AddMilliseconds(3800), 2, [KeyValuePair.Create("phase", "continuation")]));
997Assert.Equal([producerStart, boundary, s_start.AddMilliseconds(3700)],
1005StartTime = s_start.AddMilliseconds(1500),
1006EndTime = s_start.AddSeconds(5),
1014Assert.Equal(s_start.AddMilliseconds(3900), values[1].End);
1021Assert.True(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, s_start.AddMilliseconds(1500), boundary, out var count));
1023Assert.True(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, boundary, s_start.AddSeconds(5), out count));
1057StartTime = s_start.AddMilliseconds(3800),
1063Assert.Equal(s_start.AddMilliseconds(3700), partialValue.Start);
1065Assert.False(ChartDataCalculator.TryCalculatePoint(partial.Dimensions, s_start, boundary, out _));
1075var producerStart = omitStart ? DateTime.UnixEpoch : s_start;
1076var resetStart = omitStart ? DateTime.UnixEpoch : s_start.AddMilliseconds(3500);
1079CreatePoint(producerStart, s_start.AddMilliseconds(3500), [100, 0], [10]),
1080CreatePoint(resetStart, s_start.AddMilliseconds(3700), [1, 0], [10]),
1081CreatePoint(resetStart, s_start.AddMilliseconds(3900), [2, 0], [10]),
1082CreatePoint(resetStart, s_start.AddMilliseconds(4100), [3, 0], [10]))]);
1090StartTime = s_start,
1091EndTime = s_start.AddSeconds(5),
1096Assert.Equal(s_start.AddMilliseconds(3700), snapshot.Start);
1098Assert.False(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, s_start, s_start.AddMilliseconds(3500), out _));
1109var resetStart = explicitStart ? s_start.AddMilliseconds(250) : s_start;
1112CreatePoint(s_start, s_start.AddMilliseconds(100), [100, 0, 0], [10, 100]),
1113CreatePoint(s_start, s_start.AddMilliseconds(200), [110, 10, 0], [10, 100]),
1114CreatePoint(resetStart, s_start.AddMilliseconds(300), [0, 1, 0], [10, 100]),
1115CreatePoint(resetStart, s_start.AddMilliseconds(400), [0, 10, 0], [10, 100])
1131Assert.Equal(explicitStart ? resetStart : s_start.AddMilliseconds(200), values[1].Start);
1133Assert.True(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, s_start, s_start.AddSeconds(1), out var count));
1144CreatePoint(s_start, s_start.AddMilliseconds(100), [10, 0], [100]),
1145CreatePoint(s_start.AddMilliseconds(100), s_start.AddMilliseconds(200), [10, 0], [100]))]);
1166var timestamp = DateTimeToUnixNanoseconds(s_start);
1167var first = CreatePoint(s_start, s_start.AddMilliseconds(500), [1, 0, 0], [10, 100]);
1171var reset = CreatePoint(s_start, s_start.AddMilliseconds(500), nonDecreasingBuckets ? [1, 1, 0] : [0, 1, 0], [10, 100]);
1246var first = CreatePoint(s_start, s_start, [1, 0], [100]);
1272Assert.Equal(s_start, current.Start);
1273Assert.Equal(s_start, current.End);
1284var first = CreatePoint(s_start, s_start, [1, 0, 0], [10, 100]);
1287var second = CreatePoint(s_start, s_start, [1, 1, 0], [10, 100]);
1298var cloned = MetricInstrumentDataCache.Merge(instrument, instrument, cursors, s_start);
1332var point = CreatePoint(s_start, s_start, [1, 0], [100]);
1368var point = CreatePoint(s_start, s_start.AddSeconds(1), [1, 0], [100]);
1391var first = CreatePoint(s_start, s_start.AddMilliseconds(500), [1, 0], [100]);
1416CreatePoint(s_start, s_start.AddMilliseconds(100), [10, 0, 0], [10, 100]),
1417CreatePoint(s_start, s_start.AddMilliseconds(200), [0, 20, 0], [10, 100]))]);
1433CreatePoint(s_start, s_start.AddMilliseconds(100), [1, 1, 0], [10, 100]),
1434CreatePoint(s_start, s_start.AddMilliseconds(200),
1451CreatePoint(s_start, s_start.AddMilliseconds(100), [1, 1, 0], [10, 100]),
1452CreatePoint(s_start.AddMilliseconds(150), s_start.AddMilliseconds(200), [0, 0, 3, 0], [10, 50, 100]))]);
1467CreatePoint(s_start, s_start.AddMilliseconds(100), [10, 0, 0], [10, 100]),
1468CreatePoint(s_start, s_start.AddMilliseconds(200), [0, 1, 0], [10, 100]))]);
1475CreatePoint(s_start, s_start.AddMilliseconds(300), [0, 5, 0], [10, 100]),
1476CreatePoint(s_start, s_start.AddMilliseconds(400), [0, 6, 0], [10, 50]))]);
1488[CreateMetrics(AggregationTemporality.Cumulative, CreatePoint(s_start, s_start.AddSeconds(1), [1, 0], [100]))]);
1490[CreateMetrics(AggregationTemporality.Delta, CreatePoint(s_start.AddSeconds(1), s_start.AddSeconds(2), [1, 0], [100]))]);
1499var first = CreatePoint(s_start, s_start.AddMilliseconds(100), [1, 0], [100]);
1500var second = CreatePoint(s_start.AddMilliseconds(100), s_start.AddMilliseconds(200), [1, 0], [100]);
1501first.Exemplars.Add(CreateExemplar(s_start.AddMilliseconds(50), 1));
1502second.Exemplars.Add(CreateExemplar(s_start.AddMilliseconds(150), 2));
1516var first = CreatePoint(s_start, s_start.AddMilliseconds(100), [10, 0], [100]);
1517var beforeReset = CreatePoint(s_start, s_start.AddMilliseconds(200), [20, 0], [100]);
1518var reset = CreatePoint(s_start.AddMilliseconds(250), s_start.AddMilliseconds(300), [1, 0], [100]);
1519var afterReset = CreatePoint(s_start.AddMilliseconds(250), s_start.AddMilliseconds(400), [2, 0], [100]);
1520first.Exemplars.Add(CreateExemplar(s_start.AddMilliseconds(50), 1));
1521reset.Exemplars.Add(CreateExemplar(s_start.AddMilliseconds(275), 2));
1537CreatePoint(s_start, s_start.AddMilliseconds(100), [1, 0], [100]),
1538CreatePoint(s_start, s_start.AddMilliseconds(200), [2, 0], [100]))]);
1541Assert.Equal(s_start.AddMilliseconds(100), values[1].Start);
1542Assert.Equal(DateTimeToUnixNanoseconds(s_start), values[1].AggregationStartUnixNano);
1553Assert.Equal(DateTimeToUnixNanoseconds(s_start), point.StartTimeUnixNano);
1554Assert.Equal(DateTimeToUnixNanoseconds(s_start.AddMilliseconds(100)), point.TimeUnixNano);
1558Assert.Equal(DateTimeToUnixNanoseconds(s_start), point.StartTimeUnixNano);
1559Assert.Equal(DateTimeToUnixNanoseconds(s_start.AddMilliseconds(200)), point.TimeUnixNano);
1570StartTime = s_start,
1571EndTime = s_start.AddMinutes(1),
1587s_start, s_start.AddSeconds(1), traces, [], out var incompatibleBounds));