mirror of
https://github.com/prometheus/node_exporter.git
synced 2024-11-09 23:24:09 -08:00
Sanitize ethtool metric name keys
Apply the same metric name sanitization to the keys as to the metric names. This avoids conflicting help strings in the metric registry. Fixes: https://github.com/prometheus/node_exporter/issues/2893 Signed-off-by: Ben Kochie <superq@gmail.com>
This commit is contained in:
parent
274cd51ce7
commit
b3bbd1f52c
|
@ -445,18 +445,19 @@ func (c *ethtoolCollector) Update(ch chan<- prometheus.Metric) error {
|
||||||
// Sanitizing the metric names can lead to duplicate metric names. Therefore check for clashes beforehand.
|
// Sanitizing the metric names can lead to duplicate metric names. Therefore check for clashes beforehand.
|
||||||
metricFQNames := make(map[string]string)
|
metricFQNames := make(map[string]string)
|
||||||
for metric := range stats {
|
for metric := range stats {
|
||||||
if !c.metricsPattern.MatchString(metric) {
|
metricName := SanitizeMetricName(metric)
|
||||||
|
if !c.metricsPattern.MatchString(metricName) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
metricFQName := buildEthtoolFQName(metric)
|
metricFQName := buildEthtoolFQName(metricName)
|
||||||
existingMetric, exists := metricFQNames[metricFQName]
|
existingMetric, exists := metricFQNames[metricFQName]
|
||||||
if exists {
|
if exists {
|
||||||
level.Debug(c.logger).Log("msg", "dropping duplicate metric name", "device", device,
|
level.Debug(c.logger).Log("msg", "dropping duplicate metric name", "device", device,
|
||||||
"metricFQName", metricFQName, "metric1", existingMetric, "metric2", metric)
|
"metricFQName", metricFQName, "metric1", existingMetric, "metric2", metricName)
|
||||||
// Keep the metric as "deleted" in the dict in case there are 3 duplicates.
|
// Keep the metricName as "deleted" in the dict in case there are 3 duplicates.
|
||||||
metricFQNames[metricFQName] = ""
|
metricFQNames[metricFQName] = ""
|
||||||
} else {
|
} else {
|
||||||
metricFQNames[metricFQName] = metric
|
metricFQNames[metricFQName] = metricName
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue