MCPcopy
hub / github.com/grafana/tempo / Test_Histograms

Function Test_Histograms

modules/generator/registry/native_histogram_test.go:39–516  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

37}
38
39func Test_Histograms(t *testing.T) {
40 // A single observation has a labelset, a value, and a multiplier.
41 type observations []struct {
42 lbls labels.Labels
43 value float64
44 multiplier float64
45 traceID string
46 }
47
48 // A single collection has a few observations, and some expectations. This
49 // allows the test to track the accumulation of observations over a series of
50 // collections.
51 type collections []struct {
52 observations observations
53 expectedSamples []sample
54 expectedExemplars []exemplarSample
55 }
56
57 collectionTimeMs := time.Now().UnixMilli()
58 endOfLastMinuteMs := getEndOfLastMinuteMs(collectionTimeMs)
59
60 cases := []struct {
61 name string
62 buckets []float64
63 collections collections
64 // native histogram does not support all features yet
65 skipNativeHistogram bool
66 }{
67 {
68 name: "single collection single observation",
69 buckets: []float64{1, 2},
70 collections: collections{
71 {
72 observations: observations{
73 {
74 lbls: buildTestLabels([]string{"label"}, []string{"value-1"}),
75 value: 1.0,
76 multiplier: 1.0,
77 traceID: "trace-1",
78 },
79 },
80 expectedSamples: []sample{
81 newSample(map[string]string{"__name__": "test_histogram_count", "label": "value-1"}, endOfLastMinuteMs, 0), // zero count at the beginning
82 newSample(map[string]string{"__name__": "test_histogram_count", "label": "value-1"}, collectionTimeMs, 1),
83 newSample(map[string]string{"__name__": "test_histogram_sum", "label": "value-1"}, collectionTimeMs, 1),
84 newSample(map[string]string{"__name__": "test_histogram_bucket", "label": "value-1", "le": "1"}, endOfLastMinuteMs, 0),
85 newSample(map[string]string{"__name__": "test_histogram_bucket", "label": "value-1", "le": "1"}, collectionTimeMs, 1),
86 newSample(map[string]string{"__name__": "test_histogram_bucket", "label": "value-1", "le": "2"}, endOfLastMinuteMs, 0),
87 newSample(map[string]string{"__name__": "test_histogram_bucket", "label": "value-1", "le": "2"}, collectionTimeMs, 1),
88 newSample(map[string]string{"__name__": "test_histogram_bucket", "label": "value-1", "le": "+Inf"}, endOfLastMinuteMs, 0),
89 newSample(map[string]string{"__name__": "test_histogram_bucket", "label": "value-1", "le": "+Inf"}, collectionTimeMs, 1),
90 },
91 expectedExemplars: []exemplarSample{
92 newExemplar(map[string]string{"__name__": "test_histogram_bucket", "label": "value-1", "le": "1"}, exemplar.Exemplar{
93 Labels: labels.FromMap(map[string]string{"trace_id": "trace-1"}),
94 Value: 1.0,
95 Ts: collectionTimeMs,
96 }),

Callers

nothing calls this directly

Calls 15

getEndOfLastMinuteMsFunction · 0.85
buildTestLabelsFunction · 0.85
newSampleFunction · 0.85
newExemplarFunction · 0.85
expectedSeriesLenFunction · 0.85
expectedBaseSeriesCountFunction · 0.85
assertAppenderSamplesFunction · 0.85
assertAppenderExemplarsFunction · 0.85
newHistogramFunction · 0.85
testHistogramStruct · 0.85
newNativeHistogramFunction · 0.85

Tested by

no test coverage detected