forked from mirror/client_golang
Exposes bug #498 - unexpected results for Histograms in testutil
Signed-off-by: PhilipGough <philip.p.gough@gmail.com>
This commit is contained in:
parent
ca9acd2391
commit
30503fe98e
|
@ -165,6 +165,82 @@ func TestCollectAndCompareNoLabel(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestCollectAndCompareHistogram(t *testing.T) {
|
||||||
|
inputs := []struct {
|
||||||
|
name string
|
||||||
|
c prometheus.Collector
|
||||||
|
metadata string
|
||||||
|
expect string
|
||||||
|
labels []string
|
||||||
|
observation float64
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "Testing Histogram Collector",
|
||||||
|
c: prometheus.NewHistogram(prometheus.HistogramOpts{
|
||||||
|
Name: "some_histogram",
|
||||||
|
Help: "An example of a histogram",
|
||||||
|
Buckets: []float64{1, 2, 3},
|
||||||
|
}),
|
||||||
|
metadata: `
|
||||||
|
# HELP some_histogram An example of a histogram
|
||||||
|
# TYPE some_histogram histogram
|
||||||
|
`,
|
||||||
|
expect: `
|
||||||
|
some_histogram{le="1"} 0
|
||||||
|
some_histogram{le="2"} 0
|
||||||
|
some_histogram{le="3"} 1
|
||||||
|
some_histogram_bucket{le="+Inf"} 1
|
||||||
|
some_histogram_sum 2.5
|
||||||
|
some_histogram_count 1
|
||||||
|
|
||||||
|
`,
|
||||||
|
observation: 2.5,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Testing HistogramVec Collector",
|
||||||
|
c: prometheus.NewHistogramVec(prometheus.HistogramOpts{
|
||||||
|
Name: "some_histogram",
|
||||||
|
Help: "An example of a histogram",
|
||||||
|
Buckets: []float64{1, 2, 3},
|
||||||
|
}, []string{"test"}),
|
||||||
|
|
||||||
|
metadata: `
|
||||||
|
# HELP some_histogram An example of a histogram
|
||||||
|
# TYPE some_histogram histogram
|
||||||
|
`,
|
||||||
|
expect: `
|
||||||
|
some_histogram_bucket{test="test",le="1"} 0
|
||||||
|
some_histogram_bucket{test="test",le="2"} 0
|
||||||
|
some_histogram_bucket{test="test",le="3"} 1
|
||||||
|
some_histogram_bucket{test="test",le="+Inf"} 1
|
||||||
|
some_histogram_sum{test="test"} 2.5
|
||||||
|
some_histogram_count{test="test"} 1
|
||||||
|
|
||||||
|
`,
|
||||||
|
observation: 2.5,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, input := range inputs {
|
||||||
|
switch collector := input.c.(type) {
|
||||||
|
case prometheus.Histogram:
|
||||||
|
collector.Observe(input.observation)
|
||||||
|
case *prometheus.HistogramVec:
|
||||||
|
collector.WithLabelValues("test").Observe(input.observation)
|
||||||
|
default:
|
||||||
|
t.Fatalf("unsuported collector tested")
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Run(input.name, func(t *testing.T) {
|
||||||
|
if err := CollectAndCompare(input.c, strings.NewReader(input.metadata+input.expect)); err != nil {
|
||||||
|
t.Errorf("unexpected collecting result:\n%s", err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestNoMetricFilter(t *testing.T) {
|
func TestNoMetricFilter(t *testing.T) {
|
||||||
const metadata = `
|
const metadata = `
|
||||||
# HELP some_total A value that represents a counter.
|
# HELP some_total A value that represents a counter.
|
||||||
|
|
Loading…
Reference in New Issue