From d32aa62d8440bb1d242c545b432e58d59b439cf9 Mon Sep 17 00:00:00 2001 From: Han Kang Date: Wed, 12 Jul 2023 10:08:38 -0700 Subject: [PATCH 1/3] promote beta metrics --- .../metrics/prometheus/feature/metrics.go | 2 +- .../metrics/prometheus/meta/metrics.go | 48 +++++++++++++++++++ .../k8s.io/component-base/metrics/registry.go | 6 +-- 3 files changed, 52 insertions(+), 4 deletions(-) create mode 100644 staging/src/k8s.io/component-base/metrics/prometheus/meta/metrics.go diff --git a/staging/src/k8s.io/component-base/metrics/prometheus/feature/metrics.go b/staging/src/k8s.io/component-base/metrics/prometheus/feature/metrics.go index d19357fde55..416e5eda266 100644 --- a/staging/src/k8s.io/component-base/metrics/prometheus/feature/metrics.go +++ b/staging/src/k8s.io/component-base/metrics/prometheus/feature/metrics.go @@ -30,7 +30,7 @@ var ( Namespace: "kubernetes", Name: "feature_enabled", Help: "This metric records the data about the stage and enablement of a k8s feature.", - StabilityLevel: k8smetrics.ALPHA, + StabilityLevel: k8smetrics.BETA, }, []string{"name", "stage"}, ) diff --git a/staging/src/k8s.io/component-base/metrics/prometheus/meta/metrics.go b/staging/src/k8s.io/component-base/metrics/prometheus/meta/metrics.go new file mode 100644 index 00000000000..d422f010e0d --- /dev/null +++ b/staging/src/k8s.io/component-base/metrics/prometheus/meta/metrics.go @@ -0,0 +1,48 @@ +/* +Copyright 2023 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package meta + +import ( + k8smetrics "k8s.io/component-base/metrics" +) + +var ( + RegisteredMetrics = k8smetrics.NewCounterVec( + &k8smetrics.CounterOpts{ + Name: "registered_metric_total", + Help: "The count of registered metrics broken by stability level and deprecation version.", + StabilityLevel: k8smetrics.BETA, + }, + []string{"stability_level", "deprecated_version"}, + ) + + DisabledMetricsTotal = k8smetrics.NewCounter( + &k8smetrics.CounterOpts{ + Name: "disabled_metric_total", + Help: "The count of disabled metrics.", + StabilityLevel: k8smetrics.BETA, + }, + ) + + HiddenMetricsTotal = k8smetrics.NewCounter( + &k8smetrics.CounterOpts{ + Name: "hidden_metric_total", + Help: "The count of hidden metrics.", + StabilityLevel: k8smetrics.BETA, + }, + ) +) diff --git a/staging/src/k8s.io/component-base/metrics/registry.go b/staging/src/k8s.io/component-base/metrics/registry.go index 9a7138c11f8..e8fc429c058 100644 --- a/staging/src/k8s.io/component-base/metrics/registry.go +++ b/staging/src/k8s.io/component-base/metrics/registry.go @@ -41,7 +41,7 @@ var ( &CounterOpts{ Name: "registered_metric_total", Help: "The count of registered metrics broken by stability level and deprecation version.", - StabilityLevel: ALPHA, + StabilityLevel: BETA, }, []string{"stability_level", "deprecated_version"}, ) @@ -50,7 +50,7 @@ var ( &CounterOpts{ Name: "disabled_metric_total", Help: "The count of disabled metrics.", - StabilityLevel: ALPHA, + StabilityLevel: BETA, }, ) @@ -58,7 +58,7 @@ var ( &CounterOpts{ Name: "hidden_metric_total", Help: "The count of hidden metrics.", - StabilityLevel: ALPHA, + StabilityLevel: BETA, }, ) ) From aa788219f46ab0659a02a6d403b35de8de2939ed Mon Sep 17 00:00:00 2001 From: Han Kang Date: Wed, 12 Jul 2023 11:23:07 -0700 Subject: [PATCH 2/3] fix metric names --- .../metrics/prometheus/meta/metrics.go | 6 ++--- .../k8s.io/component-base/metrics/registry.go | 6 ++--- .../testdata/stable-metrics-list.yaml | 24 +++++++++++++++++++ 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/staging/src/k8s.io/component-base/metrics/prometheus/meta/metrics.go b/staging/src/k8s.io/component-base/metrics/prometheus/meta/metrics.go index d422f010e0d..66306ba2bbe 100644 --- a/staging/src/k8s.io/component-base/metrics/prometheus/meta/metrics.go +++ b/staging/src/k8s.io/component-base/metrics/prometheus/meta/metrics.go @@ -23,7 +23,7 @@ import ( var ( RegisteredMetrics = k8smetrics.NewCounterVec( &k8smetrics.CounterOpts{ - Name: "registered_metric_total", + Name: "registered_metrics_total", Help: "The count of registered metrics broken by stability level and deprecation version.", StabilityLevel: k8smetrics.BETA, }, @@ -32,7 +32,7 @@ var ( DisabledMetricsTotal = k8smetrics.NewCounter( &k8smetrics.CounterOpts{ - Name: "disabled_metric_total", + Name: "disabled_metrics_total", Help: "The count of disabled metrics.", StabilityLevel: k8smetrics.BETA, }, @@ -40,7 +40,7 @@ var ( HiddenMetricsTotal = k8smetrics.NewCounter( &k8smetrics.CounterOpts{ - Name: "hidden_metric_total", + Name: "hidden_metrics_total", Help: "The count of hidden metrics.", StabilityLevel: k8smetrics.BETA, }, diff --git a/staging/src/k8s.io/component-base/metrics/registry.go b/staging/src/k8s.io/component-base/metrics/registry.go index e8fc429c058..1942f9958d2 100644 --- a/staging/src/k8s.io/component-base/metrics/registry.go +++ b/staging/src/k8s.io/component-base/metrics/registry.go @@ -39,7 +39,7 @@ var ( registeredMetrics = NewCounterVec( &CounterOpts{ - Name: "registered_metric_total", + Name: "registered_metrics_total", Help: "The count of registered metrics broken by stability level and deprecation version.", StabilityLevel: BETA, }, @@ -48,7 +48,7 @@ var ( disabledMetricsTotal = NewCounter( &CounterOpts{ - Name: "disabled_metric_total", + Name: "disabled_metrics_total", Help: "The count of disabled metrics.", StabilityLevel: BETA, }, @@ -56,7 +56,7 @@ var ( hiddenMetricsTotal = NewCounter( &CounterOpts{ - Name: "hidden_metric_total", + Name: "hidden_metrics_total", Help: "The count of hidden metrics.", StabilityLevel: BETA, }, diff --git a/test/instrumentation/testdata/stable-metrics-list.yaml b/test/instrumentation/testdata/stable-metrics-list.yaml index 968ca87f8a1..0dc8ac811eb 100644 --- a/test/instrumentation/testdata/stable-metrics-list.yaml +++ b/test/instrumentation/testdata/stable-metrics-list.yaml @@ -491,6 +491,22 @@ - 10 - 15 - 30 +- name: disabled_metrics_total + help: The count of disabled metrics. + type: Counter + stabilityLevel: BETA +- name: hidden_metrics_total + help: The count of hidden metrics. + type: Counter + stabilityLevel: BETA +- name: feature_enabled + namespace: kubernetes + help: This metric records the data about the stage and enablement of a k8s feature. + type: Gauge + stabilityLevel: BETA + labels: + - name + - stage - name: healthcheck namespace: kubernetes help: This metric records the result of a single healthcheck. @@ -508,3 +524,11 @@ - name - status - type +- name: registered_metrics_total + help: The count of registered metrics broken by stability level and deprecation + version. + type: Counter + stabilityLevel: BETA + labels: + - deprecated_version + - stability_level From 9189c3d55997e8a341316f084636742566678d14 Mon Sep 17 00:00:00 2001 From: Han Kang Date: Wed, 12 Jul 2023 11:26:42 -0700 Subject: [PATCH 3/3] fix tests --- .../k8s.io/component-base/featuregate/feature_gate_test.go | 2 +- .../component-base/metrics/prometheus/feature/metrics_test.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/staging/src/k8s.io/component-base/featuregate/feature_gate_test.go b/staging/src/k8s.io/component-base/featuregate/feature_gate_test.go index 1ff8a9ff781..c8537a6a514 100644 --- a/staging/src/k8s.io/component-base/featuregate/feature_gate_test.go +++ b/staging/src/k8s.io/component-base/featuregate/feature_gate_test.go @@ -433,7 +433,7 @@ func TestFeatureGateMetrics(t *testing.T) { const testBetaDisabled Feature = "TestBetaDisabled" testedMetrics := []string{"kubernetes_feature_enabled"} expectedOutput := ` - # HELP kubernetes_feature_enabled [ALPHA] This metric records the data about the stage and enablement of a k8s feature. + # HELP kubernetes_feature_enabled [BETA] This metric records the data about the stage and enablement of a k8s feature. # TYPE kubernetes_feature_enabled gauge kubernetes_feature_enabled{name="TestAlpha",stage="ALPHA"} 0 kubernetes_feature_enabled{name="TestBeta",stage="BETA"} 1 diff --git a/staging/src/k8s.io/component-base/metrics/prometheus/feature/metrics_test.go b/staging/src/k8s.io/component-base/metrics/prometheus/feature/metrics_test.go index c60bdc5a5ff..bcfd85f5dc2 100644 --- a/staging/src/k8s.io/component-base/metrics/prometheus/feature/metrics_test.go +++ b/staging/src/k8s.io/component-base/metrics/prometheus/feature/metrics_test.go @@ -46,7 +46,7 @@ func TestObserveHealthcheck(t *testing.T) { stage: "ALPHA", enabled: true, want: ` - # HELP kubernetes_feature_enabled [ALPHA] This metric records the data about the stage and enablement of a k8s feature. + # HELP kubernetes_feature_enabled [BETA] This metric records the data about the stage and enablement of a k8s feature. # TYPE kubernetes_feature_enabled gauge kubernetes_feature_enabled{name="feature-a",stage="ALPHA"} 1 `, @@ -57,7 +57,7 @@ func TestObserveHealthcheck(t *testing.T) { stage: "BETA", enabled: false, want: ` - # HELP kubernetes_feature_enabled [ALPHA] This metric records the data about the stage and enablement of a k8s feature. + # HELP kubernetes_feature_enabled [BETA] This metric records the data about the stage and enablement of a k8s feature. # TYPE kubernetes_feature_enabled gauge kubernetes_feature_enabled{name="feature-b",stage="BETA"} 0 `,