mirror of
https://github.com/prometheus/prometheus.git
synced 2025-01-11 13:57:36 -08:00
OTLP receiver: Optimize by initializing regexps at program start (#15733)
Some checks failed
buf.build / lint and publish (push) Has been cancelled
CI / Go tests (push) Has been cancelled
CI / More Go tests (push) Has been cancelled
CI / Go tests with previous Go version (push) Has been cancelled
CI / UI tests (push) Has been cancelled
CI / Go tests on Windows (push) Has been cancelled
CI / Mixins tests (push) Has been cancelled
CI / Build Prometheus for common architectures (0) (push) Has been cancelled
CI / Build Prometheus for common architectures (1) (push) Has been cancelled
CI / Build Prometheus for common architectures (2) (push) Has been cancelled
CI / Build Prometheus for all architectures (0) (push) Has been cancelled
CI / Build Prometheus for all architectures (1) (push) Has been cancelled
CI / Build Prometheus for all architectures (10) (push) Has been cancelled
CI / Build Prometheus for all architectures (11) (push) Has been cancelled
CI / Build Prometheus for all architectures (2) (push) Has been cancelled
CI / Build Prometheus for all architectures (3) (push) Has been cancelled
CI / Build Prometheus for all architectures (4) (push) Has been cancelled
CI / Build Prometheus for all architectures (5) (push) Has been cancelled
CI / Build Prometheus for all architectures (6) (push) Has been cancelled
CI / Build Prometheus for all architectures (7) (push) Has been cancelled
CI / Build Prometheus for all architectures (8) (push) Has been cancelled
CI / Build Prometheus for all architectures (9) (push) Has been cancelled
CI / Check generated parser (push) Has been cancelled
CI / golangci-lint (push) Has been cancelled
CI / fuzzing (push) Has been cancelled
CI / codeql (push) Has been cancelled
Scorecards supply-chain security / Scorecards analysis (push) Has been cancelled
CI / Report status of build Prometheus for all architectures (push) Has been cancelled
CI / Publish main branch artifacts (push) Has been cancelled
CI / Publish release artefacts (push) Has been cancelled
CI / Publish UI on npm Registry (push) Has been cancelled
Some checks failed
buf.build / lint and publish (push) Has been cancelled
CI / Go tests (push) Has been cancelled
CI / More Go tests (push) Has been cancelled
CI / Go tests with previous Go version (push) Has been cancelled
CI / UI tests (push) Has been cancelled
CI / Go tests on Windows (push) Has been cancelled
CI / Mixins tests (push) Has been cancelled
CI / Build Prometheus for common architectures (0) (push) Has been cancelled
CI / Build Prometheus for common architectures (1) (push) Has been cancelled
CI / Build Prometheus for common architectures (2) (push) Has been cancelled
CI / Build Prometheus for all architectures (0) (push) Has been cancelled
CI / Build Prometheus for all architectures (1) (push) Has been cancelled
CI / Build Prometheus for all architectures (10) (push) Has been cancelled
CI / Build Prometheus for all architectures (11) (push) Has been cancelled
CI / Build Prometheus for all architectures (2) (push) Has been cancelled
CI / Build Prometheus for all architectures (3) (push) Has been cancelled
CI / Build Prometheus for all architectures (4) (push) Has been cancelled
CI / Build Prometheus for all architectures (5) (push) Has been cancelled
CI / Build Prometheus for all architectures (6) (push) Has been cancelled
CI / Build Prometheus for all architectures (7) (push) Has been cancelled
CI / Build Prometheus for all architectures (8) (push) Has been cancelled
CI / Build Prometheus for all architectures (9) (push) Has been cancelled
CI / Check generated parser (push) Has been cancelled
CI / golangci-lint (push) Has been cancelled
CI / fuzzing (push) Has been cancelled
CI / codeql (push) Has been cancelled
Scorecards supply-chain security / Scorecards analysis (push) Has been cancelled
CI / Report status of build Prometheus for all architectures (push) Has been cancelled
CI / Publish main branch artifacts (push) Has been cancelled
CI / Publish release artefacts (push) Has been cancelled
CI / Publish UI on npm Registry (push) Has been cancelled
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
This commit is contained in:
parent
2dfb4fdafb
commit
f37b5adfef
|
@ -95,9 +95,6 @@ func BuildCompliantName(metric pmetric.Metric, namespace string, addMetricSuffix
|
||||||
|
|
||||||
var metricName string
|
var metricName string
|
||||||
if !allowUTF8 {
|
if !allowUTF8 {
|
||||||
// Regexp for metric name characters that should be replaced with _.
|
|
||||||
invalidMetricCharRE := regexp.MustCompile(`[^a-zA-Z0-9:_]`)
|
|
||||||
|
|
||||||
// Simple case (no full normalization, no units, etc.).
|
// Simple case (no full normalization, no units, etc.).
|
||||||
metricName = strings.Join(strings.FieldsFunc(metric.Name(), func(r rune) bool {
|
metricName = strings.Join(strings.FieldsFunc(metric.Name(), func(r rune) bool {
|
||||||
return invalidMetricCharRE.MatchString(string(r))
|
return invalidMetricCharRE.MatchString(string(r))
|
||||||
|
@ -119,7 +116,12 @@ func BuildCompliantName(metric pmetric.Metric, namespace string, addMetricSuffix
|
||||||
return metricName
|
return metricName
|
||||||
}
|
}
|
||||||
|
|
||||||
var nonMetricNameCharRE = regexp.MustCompile(`[^a-zA-Z0-9:]`)
|
var (
|
||||||
|
nonMetricNameCharRE = regexp.MustCompile(`[^a-zA-Z0-9:]`)
|
||||||
|
// Regexp for metric name characters that should be replaced with _.
|
||||||
|
invalidMetricCharRE = regexp.MustCompile(`[^a-zA-Z0-9:_]`)
|
||||||
|
multipleUnderscoresRE = regexp.MustCompile(`__+`)
|
||||||
|
)
|
||||||
|
|
||||||
// Build a normalized name for the specified metric.
|
// Build a normalized name for the specified metric.
|
||||||
func normalizeName(metric pmetric.Metric, namespace string, allowUTF8 bool) string {
|
func normalizeName(metric pmetric.Metric, namespace string, allowUTF8 bool) string {
|
||||||
|
@ -227,7 +229,6 @@ func normalizeName(metric pmetric.Metric, namespace string, allowUTF8 bool) stri
|
||||||
func cleanUpUnit(unit string) string {
|
func cleanUpUnit(unit string) string {
|
||||||
// Multiple consecutive underscores are replaced with a single underscore.
|
// Multiple consecutive underscores are replaced with a single underscore.
|
||||||
// This is part of the OTel to Prometheus specification: https://github.com/open-telemetry/opentelemetry-specification/blob/v1.38.0/specification/compatibility/prometheus_and_openmetrics.md#otlp-metric-points-to-prometheus.
|
// This is part of the OTel to Prometheus specification: https://github.com/open-telemetry/opentelemetry-specification/blob/v1.38.0/specification/compatibility/prometheus_and_openmetrics.md#otlp-metric-points-to-prometheus.
|
||||||
multipleUnderscoresRE := regexp.MustCompile(`__+`)
|
|
||||||
return strings.TrimPrefix(multipleUnderscoresRE.ReplaceAllString(
|
return strings.TrimPrefix(multipleUnderscoresRE.ReplaceAllString(
|
||||||
nonMetricNameCharRE.ReplaceAllString(unit, "_"),
|
nonMetricNameCharRE.ReplaceAllString(unit, "_"),
|
||||||
"_",
|
"_",
|
||||||
|
|
Loading…
Reference in a new issue