From 77c3d22cc7894d71ab781aae761b6f5cee0da0f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20=C3=81ngel=20Ortu=C3=B1o?= Date: Tue, 18 Jul 2023 12:30:15 +0200 Subject: [PATCH 1/2] exporter: do not check extra metrics against enabledMetrics MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Miguel Ángel Ortuño --- pkg/util/validation/exporter/exporter.go | 6 +++--- pkg/util/validation/exporter/exporter_test.go | 15 +++++++++------ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/pkg/util/validation/exporter/exporter.go b/pkg/util/validation/exporter/exporter.go index f0684a13207..afd7dcf040e 100644 --- a/pkg/util/validation/exporter/exporter.go +++ b/pkg/util/validation/exporter/exporter.go @@ -255,9 +255,9 @@ func (oe *OverridesExporter) Collect(ch chan<- prometheus.Metric) { // Add extra exported metrics for _, em := range oe.extraMetrics { - if oe.enabledMetrics.IsAllowed(em.Name) { - exportedMetrics = append(exportedMetrics, em) - } + // Donwstream projects should be responsible for enabling/disabling their own metrics, + // so we don't check against enabledMetrics here. + exportedMetrics = append(exportedMetrics, em) } // default limits diff --git a/pkg/util/validation/exporter/exporter_test.go b/pkg/util/validation/exporter/exporter_test.go index 0e3e35d9e8c..c819df6f2d6 100644 --- a/pkg/util/validation/exporter/exporter_test.go +++ b/pkg/util/validation/exporter/exporter_test.go @@ -201,14 +201,17 @@ func TestOverridesExporter_withExtraMetrics(t *testing.T) { }, } - config := Config{EnabledMetrics: append(defaultEnabledMetricNames, "custom_extra_limit"), ExtraMetrics: []ExportedMetric{ - { - Name: "custom_extra_limit", - Get: func(_ *validation.Limits) float64 { - return 1234.0 + config := Config{ + EnabledMetrics: defaultEnabledMetricNames, + ExtraMetrics: []ExportedMetric{ + { + Name: "custom_extra_limit", + Get: func(_ *validation.Limits) float64 { + return 1234.0 + }, }, }, - }} + } exporter, err := NewOverridesExporter(config, &validation.Limits{ IngestionRate: 22, From a46e56289ba5de29d30089dfbcdfa4e8c0e56913 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20=C3=81ngel=20Ortu=C3=B1o?= Date: Tue, 18 Jul 2023 12:39:33 +0200 Subject: [PATCH 2/2] addressed PR feedback MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Miguel Ángel Ortuño --- pkg/util/validation/exporter/exporter.go | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/pkg/util/validation/exporter/exporter.go b/pkg/util/validation/exporter/exporter.go index afd7dcf040e..0e337170436 100644 --- a/pkg/util/validation/exporter/exporter.go +++ b/pkg/util/validation/exporter/exporter.go @@ -85,6 +85,8 @@ type Config struct { EnabledMetrics flagext.StringSliceCSV `yaml:"enabled_metrics" category:"experimental"` // This allows downstream projects to define their own metrics and expose them via the exporter. + // Donwstream projects should be responsible for enabling/disabling their own metrics, + // so these won't be checked against EnabledMetrics. ExtraMetrics []ExportedMetric `yaml:"-"` } @@ -254,11 +256,7 @@ func (oe *OverridesExporter) Collect(ch chan<- prometheus.Metric) { } // Add extra exported metrics - for _, em := range oe.extraMetrics { - // Donwstream projects should be responsible for enabling/disabling their own metrics, - // so we don't check against enabledMetrics here. - exportedMetrics = append(exportedMetrics, em) - } + exportedMetrics = append(exportedMetrics, oe.extraMetrics...) // default limits for _, em := range exportedMetrics {