Skip to content

Commit

Permalink
feat: not sanitizing dots in metrics names
Browse files Browse the repository at this point in the history
  • Loading branch information
Iusupov Anton committed Aug 3, 2024
1 parent 8c34200 commit a855412
Showing 1 changed file with 13 additions and 6 deletions.
19 changes: 13 additions & 6 deletions metrics/registry.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package metrics

import (
"strings"
"sync"

"github.com/prometheus/client_golang/prometheus"
Expand Down Expand Up @@ -31,19 +32,24 @@ func NewRegistry(subsystem, namespace string) Registry {
return r
}

func (r *registry) sanitizeMetricName(name string) string {
return strings.ReplaceAll(name, "-", "_")
}

func (r *registry) Inc(name string) {
r.metricsMu.Lock()
defer r.metricsMu.Unlock()

counter, exists := r.counters[name]
sanitized := r.sanitizeMetricName(name)
counter, exists := r.counters[sanitized]
if !exists {
counter = prometheus.NewCounter(prometheus.CounterOpts{
Subsystem: r.Subsystem,
Namespace: r.Namespace,
Name: name,
Name: sanitized,
})
r.PromRegistry.MustRegister(counter)
r.counters[name] = counter
r.counters[sanitized] = counter
}
counter.Inc()
}
Expand All @@ -52,16 +58,17 @@ func (r *registry) RecordDuration(name string, labels []string) *prometheus.Hist
r.metricsMu.Lock()
defer r.metricsMu.Unlock()

histogram, exists := r.histograms[name]
sanitized := r.sanitizeMetricName(name)
histogram, exists := r.histograms[sanitized]
if !exists {
histogram = prometheus.NewHistogramVec(prometheus.HistogramOpts{
Subsystem: r.Subsystem,
Namespace: r.Namespace,
Name: name,
Name: sanitized,
Buckets: prometheus.DefBuckets,
}, labels)
r.PromRegistry.MustRegister(histogram)
r.histograms[name] = histogram
r.histograms[sanitized] = histogram
}
return histogram
}
Expand Down

0 comments on commit a855412

Please sign in to comment.