forked from mirrors/statsd_exporter
Check for histogram conflict on main name
While it doesn't report it as a metric, when collecting, the registry considers the base metric name to below to the histogram that's registered. This means that we need to prevent other metrics from registering anything under this name, in addition to checking for the bucket, sum and count suffixes. Signed-off-by: Clayton O'Neill <claytono@github.com>
This commit is contained in:
parent
a42de85289
commit
cce95f6980
2 changed files with 17 additions and 0 deletions
|
@ -262,6 +262,9 @@ func (c *HistogramContainer) Get(metricName string, labels prometheus.Labels, mc
|
|||
|
||||
histogramVec, ok := c.Elements[mapKey]
|
||||
if !ok {
|
||||
if mc.metricConflicts(metricName, HistogramMetricType) {
|
||||
return nil, fmt.Errorf("metric with name %s is already registered", metricName)
|
||||
}
|
||||
if mc.metricConflicts(metricName+"_sum", HistogramMetricType) {
|
||||
return nil, fmt.Errorf("metric with name %s is already registered", metricName)
|
||||
}
|
||||
|
|
|
@ -235,6 +235,20 @@ func TestConflictingMetrics(t *testing.T) {
|
|||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "counter vs histogram",
|
||||
expected: []float64{1},
|
||||
in: Events{
|
||||
&CounterEvent{
|
||||
metricName: "histogram_test1",
|
||||
value: 1,
|
||||
},
|
||||
&TimerEvent{
|
||||
metricName: "histogram.test1",
|
||||
value: 2,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "counter vs histogram sum",
|
||||
expected: []float64{1},
|
||||
|
|
Loading…
Reference in a new issue