diff --git a/util/convertnhcb/convertnhcb.go b/util/convertnhcb/convertnhcb.go index acbb4bec8..5e08422aa 100644 --- a/util/convertnhcb/convertnhcb.go +++ b/util/convertnhcb/convertnhcb.go @@ -19,30 +19,10 @@ import ( "sort" "strings" - "github.com/grafana/regexp" - "github.com/prometheus/prometheus/model/histogram" "github.com/prometheus/prometheus/model/labels" ) -var histogramNameSuffixReplacements = []struct { - pattern *regexp.Regexp - repl string -}{ - { - pattern: regexp.MustCompile(`_bucket$`), - repl: "", - }, - { - pattern: regexp.MustCompile(`_sum$`), - repl: "", - }, - { - pattern: regexp.MustCompile(`_count$`), - repl: "", - }, -} - // TempHistogram is used to collect information about classic histogram // samples incrementally before creating a histogram.Histogram or // histogram.FloatHistogram based on the values collected. @@ -176,9 +156,18 @@ func GetHistogramMetricBase(m labels.Labels, suffix string) labels.Labels { Labels() } +// GetHistogramMetricBaseName removes the suffixes _bucket, _sum, _count from +// the metric name. We specifically do not remove the _created suffix as that +// should be removed by the caller. func GetHistogramMetricBaseName(s string) string { - for _, rep := range histogramNameSuffixReplacements { - s = rep.pattern.ReplaceAllString(s, rep.repl) + if r, ok := strings.CutSuffix(s, "_bucket"); ok { + return r + } + if r, ok := strings.CutSuffix(s, "_sum"); ok { + return r + } + if r, ok := strings.CutSuffix(s, "_count"); ok { + return r } return s }