TelemetryRepositoryTests\HistogramTests.cs (275)
37var first = CreatePoint(s_start, s_start.AddSeconds(59), [3, 0], [100]);
41second.TimeUnixNano = DateTimeToUnixNanoseconds(s_start.AddSeconds(60));
43last.TimeUnixNano = DateTimeToUnixNanoseconds(s_start.AddMilliseconds(60_500));
44var exemplar = CreateExemplar(s_start.AddMilliseconds(60_100), 1);
67StartTime = s_start.AddSeconds(60),
68EndTime = s_start.AddSeconds(61),
74Assert.Equal(s_start.AddMilliseconds(60_500), value.End);
99var sampleTime = s_start.AddMilliseconds(500);
104var point = CreatePoint(s_start, s_start.AddSeconds(1), [3, 0], [100]);
133var merged = MetricInstrumentDataCache.Merge(instrument, instrument, cursors, s_start);
141StartTime = s_start,
153EndTime = s_start.AddMinutes(1),
183var point = CreatePoint(s_start, s_start.AddSeconds(1), [1, 0], [100]);
185var accepted = CreateExemplar(s_start, 1);
217var point = CreatePoint(s_start, s_start.AddMilliseconds(index * 100), [10, 0], [100]);
220point.Exemplars.Add(CreateExemplar(s_start.AddMilliseconds(index * 100 - 50), index));
233Assert.Equal(s_start, snapshot.Start);
234Assert.Equal(s_start.AddMilliseconds(300), snapshot.End);
252var first = CreatePoint(s_start, s_start, [1, 0], [100]);
260var stale = CreatePoint(s_start, s_start, [staleCount, 0], [100]);
297CreatePoint(s_start, s_start.AddMilliseconds(100), [10, 0], [100]),
298CreatePoint(s_start, s_start.AddMilliseconds(200), [20, 0], [100]),
299CreatePoint(s_start, s_start.AddMilliseconds(150), [staleCount, 0], [100]),
300CreatePoint(s_start, s_start.AddMilliseconds(300), [25, 0], [100])
314[(s_start, s_start.AddMilliseconds(100), 10ul),
315(s_start.AddMilliseconds(100), s_start.AddMilliseconds(200), 20ul),
316(s_start.AddMilliseconds(200), s_start.AddMilliseconds(300), 25ul)],
320Assert.True(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, s_start, s_start.AddSeconds(1), out var count));
326Assert.Equal(s_start, rolledUpValue.Start);
327Assert.Equal(s_start.AddMilliseconds(300), rolledUpValue.End);
344CreatePoint(s_start, s_start.AddMilliseconds(100), [10, 0], [100]),
345CreatePoint(s_start, s_start.AddMilliseconds(200), [20, 0], [100]))]);
352CreatePoint(s_start, s_start.AddMilliseconds(150), [staleCount, 0], [100]),
353CreatePoint(s_start, s_start.AddMilliseconds(300), [25, 0], [100]))]);
361Assert.Equal(s_start.AddMilliseconds(200), values[^1].Start);
372CreatePoint(s_start, s_start.AddMilliseconds(100), [10, 0], [100]),
373CreatePoint(s_start.AddMilliseconds(200), s_start.AddMilliseconds(300), [25, 0], [100]),
374CreatePoint(s_start.AddMilliseconds(100), s_start.AddMilliseconds(200), [20, 0], [100]))]);
381Assert.True(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, s_start, s_start.AddSeconds(1), out var count));
391var invalid = CreatePoint(s_start, s_start.AddMilliseconds(100), [1, 0], [100]);
400var valid = CreatePoint(s_start, s_start.AddMilliseconds(200), [1, 0], [100]);
424CreatePoint(DateTime.UnixEpoch, s_start.AddMilliseconds(100), [100, 0, 0], [10, 100]),
425CreatePoint(DateTime.UnixEpoch, s_start.AddMilliseconds(200), [0, 100, 0], [10, 100]))]);
440[(s_start.AddMilliseconds(100), s_start.AddMilliseconds(100), 100ul),
441(s_start.AddMilliseconds(200), s_start.AddMilliseconds(200), 100ul)],
446var chartTime = new DateTimeOffset(s_start.AddSeconds(1));
466point => Assert.Equal(DateTimeToUnixNanoseconds(s_start.AddMilliseconds(100)), point.TimeUnixNano),
467point => Assert.Equal(DateTimeToUnixNanoseconds(s_start.AddMilliseconds(200)), point.TimeUnixNano));
479CreatePoint(s_start, s_start.AddMilliseconds(100), [10, 0], [10]),
480CreatePoint(s_start, s_start.AddMilliseconds(200), [20, 0], [10]),
481CreatePoint(s_start, s_start.AddMilliseconds(200), [30, 0], [10]),
482CreatePoint(s_start, s_start.AddMilliseconds(200), [40, 0], [10]),
483CreatePoint(s_start, s_start.AddMilliseconds(300), [50, 0], [10])
489points[index].Exemplars.Add(CreateExemplar(s_start.AddMilliseconds(50), index + 1));
529var point = CreatePoint(s_start.AddMilliseconds(index * 100), s_start.AddMilliseconds((index + 1) * 100),
532point.Exemplars.Add(CreateExemplar(s_start.AddMilliseconds(index * 100 + 50), index + 1));
550StartTimeUnixNano = DateTimeToUnixNanoseconds(s_start),
551TimeUnixNano = DateTimeToUnixNanoseconds(s_start.AddMilliseconds(500)),
556StartTimeUnixNano = DateTimeToUnixNanoseconds(s_start),
557TimeUnixNano = DateTimeToUnixNanoseconds(s_start.AddMilliseconds(600)),
571Assert.True(ChartDataCalculator.TryCalculatePoint(histogram.Dimensions, s_start, s_start.AddSeconds(1), out var count));
579StartTime = s_start,
580EndTime = s_start.AddSeconds(1)
596var first = CreatePoint(s_start, s_start.AddMilliseconds(100), [10, 0, 0], [10, 100]);
598first.Exemplars.Add(CreateExemplar(s_start.AddMilliseconds(50), 5, [KeyValuePair.Create("delivery", "first")]));
599var updated = CreatePoint(s_start, s_start.AddMilliseconds(100), [0, 20, 0], [20, 200]);
601updated.Exemplars.Add(CreateExemplar(s_start.AddMilliseconds(75), 50, [KeyValuePair.Create("delivery", "retry")]));
652var point = CreatePoint(s_start.AddMilliseconds(index), s_start.AddMilliseconds(index + 1), [100, 0], [10]);
675Assert.True(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, s_start, s_start.AddSeconds(1), out var count));
700CreatePoint(s_start, s_start.AddMilliseconds(100), [100, 0, 0], [10, 100]),
701CreatePoint(s_start.AddMilliseconds(100), s_start.AddMilliseconds(200), [0, 100, 0], [10, 100]),
702CreatePoint(s_start.AddMilliseconds(200), s_start.AddMilliseconds(300), [0, 0, 100], [10, 100])
708var next = CreatePoint(s_start.AddMilliseconds(300), s_start.AddMilliseconds(400), [100, 0, 0], [10, 100]);
755Assert.True(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, s_start, s_start.AddSeconds(1), out var count));
773var timestamp = DateTimeToUnixNanoseconds(s_start);
774var first = CreatePoint(s_start, s_start.AddTicks(2), [100, 0, 0], [10, 100]);
777var second = CreatePoint(s_start, s_start.AddTicks(2), [0, 100, 0], [10, 100]);
825Assert.Equal(omitStart || sameStartTick ? s_start.AddTicks(1) : s_start, value.Start);
831Assert.Equal(s_start.AddTicks(1), value.Start);
834Assert.All(values, value => Assert.Equal(s_start.AddTicks(1), value.End));
836Assert.True(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, s_start, s_start.AddSeconds(1), out var count));
849var timestamp = DateTimeToUnixNanoseconds(s_start);
850var first = CreatePoint(s_start, s_start.AddTicks(2), [100, 0, 0], [10, 100]);
854var second = CreatePoint(s_start, s_start.AddTicks(2), [0, 100, 0], [10, 100]);
898Assert.True(ChartDataCalculator.TryCalculatePoint(imported.Dimensions, s_start, s_start.AddSeconds(1), out var count));
908var point = CreatePoint(DateTime.UnixEpoch, s_start, [1, 0], [100]);
926CreatePoint(s_start, s_start.AddMilliseconds(100), [100, 0, 0], [10, 100]),
927CreatePoint(s_start.AddMilliseconds(100), s_start.AddMilliseconds(200), [0, 100, 0], [10, 100])
950Assert.Equal(s_start, value.Start);
955Assert.Equal(s_start.AddMilliseconds(100), value.Start);
960Assert.True(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, s_start, s_start.AddSeconds(1), out var count));
971CreatePoint(s_start, s_start.AddMilliseconds(100), [1, 8, 1], [10, 100]),
972CreatePoint(s_start.AddMilliseconds(100), s_start.AddMilliseconds(200), [0, 0, 2, 0], [10, 50, 100]))]);
977Assert.True(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, s_start, s_start.AddSeconds(1), out var count));
990CreatePoint(s_start, s_start.AddSeconds(1), [100, 0], [100]),
991CreatePoint(s_start.AddSeconds(1), s_start.AddSeconds(2), [1, 0], [100]))]);
999StartTime = s_start,
1000EndTime = s_start.AddSeconds(2),
1006Assert.True(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, s_start, s_start.AddSeconds(1), out var count));
1008Assert.True(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, s_start.AddSeconds(1), s_start.AddSeconds(2), out count));
1025var boundary = s_start.AddMilliseconds(3500);
1026var producerStart = resetKind == 3 ? DateTime.UnixEpoch : s_start.AddMilliseconds(1500);
1029var reset = CreatePoint(resetProducerStart, s_start.AddMilliseconds(3700),
1031var continuation = CreatePoint(resetProducerStart, s_start.AddMilliseconds(3900),
1033first.Exemplars.Add(CreateExemplar(s_start.AddMilliseconds(3250), 100, [KeyValuePair.Create("phase", "before")]));
1034reset.Exemplars.Add(CreateExemplar(s_start.AddMilliseconds(3600), 1, [KeyValuePair.Create("phase", "reset")]));
1035continuation.Exemplars.Add(CreateExemplar(s_start.AddMilliseconds(3800), 2, [KeyValuePair.Create("phase", "continuation")]));
1058Assert.Equal([producerStart, boundary, s_start.AddMilliseconds(3700)],
1066StartTime = s_start.AddMilliseconds(1500),
1067EndTime = s_start.AddSeconds(5),
1075Assert.Equal(s_start.AddMilliseconds(3900), values[1].End);
1082Assert.True(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, s_start.AddMilliseconds(1500), boundary, out var count));
1084Assert.True(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, boundary, s_start.AddSeconds(5), out count));
1118StartTime = s_start.AddMilliseconds(3800),
1124Assert.Equal(s_start.AddMilliseconds(3700), partialValue.Start);
1126Assert.False(ChartDataCalculator.TryCalculatePoint(partial.Dimensions, s_start, boundary, out _));
1136var producerStart = omitStart ? DateTime.UnixEpoch : s_start;
1137var resetStart = omitStart ? DateTime.UnixEpoch : s_start.AddMilliseconds(3500);
1140CreatePoint(producerStart, s_start.AddMilliseconds(3500), [100, 0], [10]),
1141CreatePoint(resetStart, s_start.AddMilliseconds(3700), [1, 0], [10]),
1142CreatePoint(resetStart, s_start.AddMilliseconds(3900), [2, 0], [10]),
1143CreatePoint(resetStart, s_start.AddMilliseconds(4100), [3, 0], [10]))]);
1151StartTime = s_start,
1152EndTime = s_start.AddSeconds(5),
1157Assert.Equal(s_start.AddMilliseconds(3700), snapshot.Start);
1159Assert.False(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, s_start, s_start.AddMilliseconds(3500), out _));
1170var resetStart = explicitStart ? s_start.AddMilliseconds(250) : s_start;
1173CreatePoint(s_start, s_start.AddMilliseconds(100), [100, 0, 0], [10, 100]),
1174CreatePoint(s_start, s_start.AddMilliseconds(200), [110, 10, 0], [10, 100]),
1175CreatePoint(resetStart, s_start.AddMilliseconds(300), [0, 1, 0], [10, 100]),
1176CreatePoint(resetStart, s_start.AddMilliseconds(400), [0, 10, 0], [10, 100])
1192Assert.Equal(explicitStart ? resetStart : s_start.AddMilliseconds(200), values[1].Start);
1194Assert.True(ChartDataCalculator.TryCalculatePoint(instrument.Dimensions, s_start, s_start.AddSeconds(1), out var count));
1205CreatePoint(s_start, s_start.AddMilliseconds(100), [10, 0], [100]),
1206CreatePoint(s_start.AddMilliseconds(100), s_start.AddMilliseconds(200), [10, 0], [100]))]);
1227var timestamp = DateTimeToUnixNanoseconds(s_start);
1228var first = CreatePoint(s_start, s_start.AddMilliseconds(500), [1, 0, 0], [10, 100]);
1232var reset = CreatePoint(s_start, s_start.AddMilliseconds(500), nonDecreasingBuckets ? [1, 1, 0] : [0, 1, 0], [10, 100]);
1307var first = CreatePoint(s_start, s_start, [1, 0], [100]);
1333Assert.Equal(s_start, current.Start);
1334Assert.Equal(s_start, current.End);
1345var first = CreatePoint(s_start, s_start, [1, 0, 0], [10, 100]);
1348var second = CreatePoint(s_start, s_start, [1, 1, 0], [10, 100]);
1359var cloned = MetricInstrumentDataCache.Merge(instrument, instrument, cursors, s_start);
1393var point = CreatePoint(s_start, s_start, [1, 0], [100]);
1429var point = CreatePoint(s_start, s_start.AddSeconds(1), [1, 0], [100]);
1452var first = CreatePoint(s_start, s_start.AddMilliseconds(500), [1, 0], [100]);
1477CreatePoint(s_start, s_start.AddMilliseconds(100), [10, 0, 0], [10, 100]),
1478CreatePoint(s_start, s_start.AddMilliseconds(200), [0, 20, 0], [10, 100]))]);
1494CreatePoint(s_start, s_start.AddMilliseconds(100), [1, 1, 0], [10, 100]),
1495CreatePoint(s_start, s_start.AddMilliseconds(200),
1512CreatePoint(s_start, s_start.AddMilliseconds(100), [1, 1, 0], [10, 100]),
1513CreatePoint(s_start.AddMilliseconds(150), s_start.AddMilliseconds(200), [0, 0, 3, 0], [10, 50, 100]))]);
1528CreatePoint(s_start, s_start.AddMilliseconds(100), [10, 0, 0], [10, 100]),
1529CreatePoint(s_start, s_start.AddMilliseconds(200), [0, 1, 0], [10, 100]))]);
1536CreatePoint(s_start, s_start.AddMilliseconds(300), [0, 5, 0], [10, 100]),
1537CreatePoint(s_start, s_start.AddMilliseconds(400), [0, 6, 0], [10, 50]))]);
1549[CreateMetrics(AggregationTemporality.Cumulative, CreatePoint(s_start, s_start.AddSeconds(1), [1, 0], [100]))]);
1551[CreateMetrics(AggregationTemporality.Delta, CreatePoint(s_start.AddSeconds(1), s_start.AddSeconds(2), [1, 0], [100]))]);
1560var first = CreatePoint(s_start, s_start.AddMilliseconds(100), [1, 0], [100]);
1561var second = CreatePoint(s_start.AddMilliseconds(100), s_start.AddMilliseconds(200), [1, 0], [100]);
1562first.Exemplars.Add(CreateExemplar(s_start.AddMilliseconds(50), 1));
1563second.Exemplars.Add(CreateExemplar(s_start.AddMilliseconds(150), 2));
1577var first = CreatePoint(s_start, s_start.AddMilliseconds(100), [10, 0], [100]);
1578var beforeReset = CreatePoint(s_start, s_start.AddMilliseconds(200), [20, 0], [100]);
1579var reset = CreatePoint(s_start.AddMilliseconds(250), s_start.AddMilliseconds(300), [1, 0], [100]);
1580var afterReset = CreatePoint(s_start.AddMilliseconds(250), s_start.AddMilliseconds(400), [2, 0], [100]);
1581first.Exemplars.Add(CreateExemplar(s_start.AddMilliseconds(50), 1));
1582reset.Exemplars.Add(CreateExemplar(s_start.AddMilliseconds(275), 2));
1598CreatePoint(s_start, s_start.AddMilliseconds(100), [1, 0], [100]),
1599CreatePoint(s_start, s_start.AddMilliseconds(200), [2, 0], [100]))]);
1602Assert.Equal(s_start.AddMilliseconds(100), values[1].Start);
1603Assert.Equal(DateTimeToUnixNanoseconds(s_start), values[1].AggregationStartUnixNano);
1614Assert.Equal(DateTimeToUnixNanoseconds(s_start), point.StartTimeUnixNano);
1615Assert.Equal(DateTimeToUnixNanoseconds(s_start.AddMilliseconds(100)), point.TimeUnixNano);
1619Assert.Equal(DateTimeToUnixNanoseconds(s_start), point.StartTimeUnixNano);
1620Assert.Equal(DateTimeToUnixNanoseconds(s_start.AddMilliseconds(200)), point.TimeUnixNano);
1631StartTime = s_start,
1632EndTime = s_start.AddMinutes(1),
1648s_start, s_start.AddSeconds(1), traces, [], out var incompatibleBounds));