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.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/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 `, 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..66306ba2bbe --- /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_metrics_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_metrics_total", + Help: "The count of disabled metrics.", + StabilityLevel: k8smetrics.BETA, + }, + ) + + HiddenMetricsTotal = k8smetrics.NewCounter( + &k8smetrics.CounterOpts{ + 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 9a7138c11f8..1942f9958d2 100644 --- a/staging/src/k8s.io/component-base/metrics/registry.go +++ b/staging/src/k8s.io/component-base/metrics/registry.go @@ -39,26 +39,26 @@ 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: ALPHA, + StabilityLevel: BETA, }, []string{"stability_level", "deprecated_version"}, ) disabledMetricsTotal = NewCounter( &CounterOpts{ - Name: "disabled_metric_total", + Name: "disabled_metrics_total", Help: "The count of disabled metrics.", - StabilityLevel: ALPHA, + StabilityLevel: BETA, }, ) hiddenMetricsTotal = NewCounter( &CounterOpts{ - Name: "hidden_metric_total", + Name: "hidden_metrics_total", Help: "The count of hidden metrics.", - StabilityLevel: ALPHA, + 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