mirror of https://github.com/prometheus/prometheus
Merge pull request #15159 from prometheus/nhcb-scrape-optimize1
convertnhcb: use CutSuffix instead of regex replace for histogram namepull/15173/head
commit
55419275ab
|
@ -19,30 +19,10 @@ import (
|
||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/grafana/regexp"
|
|
||||||
|
|
||||||
"github.com/prometheus/prometheus/model/histogram"
|
"github.com/prometheus/prometheus/model/histogram"
|
||||||
"github.com/prometheus/prometheus/model/labels"
|
"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
|
// TempHistogram is used to collect information about classic histogram
|
||||||
// samples incrementally before creating a histogram.Histogram or
|
// samples incrementally before creating a histogram.Histogram or
|
||||||
// histogram.FloatHistogram based on the values collected.
|
// histogram.FloatHistogram based on the values collected.
|
||||||
|
@ -176,9 +156,18 @@ func GetHistogramMetricBase(m labels.Labels, suffix string) labels.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 {
|
func GetHistogramMetricBaseName(s string) string {
|
||||||
for _, rep := range histogramNameSuffixReplacements {
|
if r, ok := strings.CutSuffix(s, "_bucket"); ok {
|
||||||
s = rep.pattern.ReplaceAllString(s, rep.repl)
|
return r
|
||||||
|
}
|
||||||
|
if r, ok := strings.CutSuffix(s, "_sum"); ok {
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
if r, ok := strings.CutSuffix(s, "_count"); ok {
|
||||||
|
return r
|
||||||
}
|
}
|
||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue