(t *testing.T)
| 14 | ) |
| 15 | |
| 16 | func Test_histogram(t *testing.T) { |
| 17 | var seriesAdded int |
| 18 | lifecycler := &mockLimiter{ |
| 19 | onAddFunc: func(hash uint64, _ uint32, lbls labels.Labels) (labels.Labels, uint64) { |
| 20 | seriesAdded++ |
| 21 | return lbls, hash |
| 22 | }, |
| 23 | } |
| 24 | |
| 25 | h := newHistogram("my_histogram", []float64{1.0, 2.0}, lifecycler, "trace_id", nil, 15*time.Minute) |
| 26 | |
| 27 | h.ObserveWithExemplar(buildTestLabels([]string{"label"}, []string{"value-1"}), 1.0, "trace-1", 1.0) |
| 28 | h.ObserveWithExemplar(buildTestLabels([]string{"label"}, []string{"value-2"}), 1.5, "trace-2", 1.0) |
| 29 | |
| 30 | assert.Equal(t, 2, seriesAdded) |
| 31 | |
| 32 | collectionTimeMs := time.Now().UnixMilli() |
| 33 | endOfLastMinuteMs := getEndOfLastMinuteMs(collectionTimeMs) |
| 34 | |
| 35 | expectedSamples := []sample{ |
| 36 | newSample(map[string]string{"__name__": "my_histogram_count", "label": "value-1"}, endOfLastMinuteMs, 0), // Zero entry for value-1 series |
| 37 | newSample(map[string]string{"__name__": "my_histogram_count", "label": "value-1"}, collectionTimeMs, 1), |
| 38 | newSample(map[string]string{"__name__": "my_histogram_sum", "label": "value-1"}, collectionTimeMs, 1), |
| 39 | newSample(map[string]string{"__name__": "my_histogram_bucket", "label": "value-1", "le": "1"}, endOfLastMinuteMs, 0), // Zero entry for bucket |
| 40 | newSample(map[string]string{"__name__": "my_histogram_bucket", "label": "value-1", "le": "1"}, collectionTimeMs, 1), |
| 41 | newSample(map[string]string{"__name__": "my_histogram_bucket", "label": "value-1", "le": "2"}, endOfLastMinuteMs, 0), |
| 42 | newSample(map[string]string{"__name__": "my_histogram_bucket", "label": "value-1", "le": "2"}, collectionTimeMs, 1), |
| 43 | newSample(map[string]string{"__name__": "my_histogram_bucket", "label": "value-1", "le": "+Inf"}, endOfLastMinuteMs, 0), |
| 44 | newSample(map[string]string{"__name__": "my_histogram_bucket", "label": "value-1", "le": "+Inf"}, collectionTimeMs, 1), |
| 45 | newSample(map[string]string{"__name__": "my_histogram_count", "label": "value-2"}, endOfLastMinuteMs, 0), // Zero entry for value-2 series |
| 46 | newSample(map[string]string{"__name__": "my_histogram_count", "label": "value-2"}, collectionTimeMs, 1), |
| 47 | newSample(map[string]string{"__name__": "my_histogram_sum", "label": "value-2"}, collectionTimeMs, 1.5), |
| 48 | newSample(map[string]string{"__name__": "my_histogram_bucket", "label": "value-2", "le": "1"}, endOfLastMinuteMs, 0), |
| 49 | newSample(map[string]string{"__name__": "my_histogram_bucket", "label": "value-2", "le": "1"}, collectionTimeMs, 0), |
| 50 | newSample(map[string]string{"__name__": "my_histogram_bucket", "label": "value-2", "le": "2"}, endOfLastMinuteMs, 0), |
| 51 | newSample(map[string]string{"__name__": "my_histogram_bucket", "label": "value-2", "le": "2"}, collectionTimeMs, 1), |
| 52 | newSample(map[string]string{"__name__": "my_histogram_bucket", "label": "value-2", "le": "+Inf"}, endOfLastMinuteMs, 0), |
| 53 | newSample(map[string]string{"__name__": "my_histogram_bucket", "label": "value-2", "le": "+Inf"}, collectionTimeMs, 1), |
| 54 | } |
| 55 | expectedExemplars := []exemplarSample{ |
| 56 | newExemplar(map[string]string{"__name__": "my_histogram_bucket", "label": "value-1", "le": "1"}, exemplar.Exemplar{ |
| 57 | Labels: labels.FromMap(map[string]string{"trace_id": "trace-1"}), |
| 58 | Value: 1.0, |
| 59 | Ts: collectionTimeMs, |
| 60 | }), |
| 61 | newExemplar(map[string]string{"__name__": "my_histogram_bucket", "label": "value-2", "le": "2"}, exemplar.Exemplar{ |
| 62 | Labels: labels.FromMap(map[string]string{"trace_id": "trace-2"}), |
| 63 | Value: 1.5, |
| 64 | Ts: collectionTimeMs, |
| 65 | }), |
| 66 | } |
| 67 | collectMetricAndAssert(t, h, collectionTimeMs, 10, expectedSamples, expectedExemplars) |
| 68 | |
| 69 | h.ObserveWithExemplar(buildTestLabels([]string{"label"}, []string{"value-2"}), 2.5, "trace-2.2", 1.0) |
| 70 | h.ObserveWithExemplar(buildTestLabels([]string{"label"}, []string{"value-3"}), 3.0, "trace-3", 1.0) |
| 71 | |
| 72 | assert.Equal(t, 3, seriesAdded) |
| 73 |
nothing calls this directly
no test coverage detected