From 56670a133162fff912b6b906becb1cc40eef5947 Mon Sep 17 00:00:00 2001 From: Anna Tran Date: Mon, 3 Nov 2025 13:54:14 -0800 Subject: [PATCH] Fix metric name validation to use correct validation scheme method Signed-off-by: Anna Tran --- CHANGELOG.md | 1 + pkg/util/validation/validate.go | 2 +- pkg/util/validation/validate_test.go | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1cf0e7a9c9..2fdbd8a7ca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ * [ENHANCEMENT] Distributor: Add a label references validation for remote write v2 request. #7074 * [ENHANCEMENT] Distributor: Add count, spans, and buckets validations for native histogram. #7072 * [BUGFIX] Compactor: Avoid race condition which allow a grouper to not compact all partitions. #7082 +* [BUGFIX] Fix bug where validating metric names uses the wrong validation logic. #7086 ## 1.20.0 in progress diff --git a/pkg/util/validation/validate.go b/pkg/util/validation/validate.go index f0612afd07..077b8e761f 100644 --- a/pkg/util/validation/validate.go +++ b/pkg/util/validation/validate.go @@ -286,7 +286,7 @@ func ValidateLabels(validateMetrics *ValidateMetrics, limits *Limits, userID str return newNoMetricNameError() } - if !nameValidationScheme.IsValidLabelName(unsafeMetricName) { + if !nameValidationScheme.IsValidMetricName(unsafeMetricName) { validateMetrics.DiscardedSamples.WithLabelValues(invalidMetricName, userID).Inc() return newInvalidMetricNameError(unsafeMetricName) } diff --git a/pkg/util/validation/validate_test.go b/pkg/util/validation/validate_test.go index dca9d7d186..27c41aed57 100644 --- a/pkg/util/validation/validate_test.go +++ b/pkg/util/validation/validate_test.go @@ -136,7 +136,7 @@ func TestValidateLabels(t *testing.T) { }, "foo "), }, { - map[model.LabelName]model.LabelValue{model.MetricNameLabel: "valid"}, + map[model.LabelName]model.LabelValue{model.MetricNameLabel: "valid:name"}, false, nil, }, @@ -203,7 +203,7 @@ func TestValidateLabels(t *testing.T) { # HELP cortex_label_size_bytes The combined size in bytes of all labels and label values for a time series. # TYPE cortex_label_size_bytes histogram cortex_label_size_bytes_bucket{user="testUser",le="+Inf"} 3 - cortex_label_size_bytes_sum{user="testUser"} 148 + cortex_label_size_bytes_sum{user="testUser"} 153 cortex_label_size_bytes_count{user="testUser"} 3 `), "cortex_label_size_bytes"))