From d41b998b438708d42f81fdbbf39a49e1b7900310 Mon Sep 17 00:00:00 2001 From: Han Kang Date: Mon, 10 Jun 2019 11:18:54 -0700 Subject: [PATCH] fix stability level annotation for counter vec add corresponding test cases --- .../k8s.io/component-base/metrics/counter.go | 5 +++++ .../component-base/metrics/counter_test.go | 17 +++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/staging/src/k8s.io/component-base/metrics/counter.go b/staging/src/k8s.io/component-base/metrics/counter.go index 0d4e7fb3f24..e8ee0df771d 100644 --- a/staging/src/k8s.io/component-base/metrics/counter.go +++ b/staging/src/k8s.io/component-base/metrics/counter.go @@ -86,6 +86,10 @@ type CounterVec struct { // However, the object returned will not measure anything unless the collector is first // registered, since the metric is lazily instantiated. func NewCounterVec(opts *CounterOpts, labels []string) *CounterVec { + // todo: handle defaulting better + if opts.StabilityLevel == "" { + opts.StabilityLevel = ALPHA + } cv := &CounterVec{ CounterVec: noopCounterVec, CounterOpts: opts, @@ -104,6 +108,7 @@ func (v *CounterVec) DeprecatedVersion() *semver.Version { // initializeMetric invocation creates the actual underlying CounterVec. Until this method is called // the underlying counterVec is a no-op. func (v *CounterVec) initializeMetric() { + v.CounterOpts.annotateStabilityLevel() v.CounterVec = prometheus.NewCounterVec(v.CounterOpts.toPromCounterOpts(), v.originalLabels) } diff --git a/staging/src/k8s.io/component-base/metrics/counter_test.go b/staging/src/k8s.io/component-base/metrics/counter_test.go index 15eaf3db6b1..dbad0349d69 100644 --- a/staging/src/k8s.io/component-base/metrics/counter_test.go +++ b/staging/src/k8s.io/component-base/metrics/counter_test.go @@ -143,7 +143,7 @@ func TestCounterVec(t *testing.T) { }, labels: []string{"label_a", "label_b"}, expectedMetricFamilyCount: 1, - expectedHelp: "counter help", + expectedHelp: "[ALPHA] counter help", }, { desc: "Test deprecated", @@ -156,7 +156,7 @@ func TestCounterVec(t *testing.T) { }, labels: []string{"label_a", "label_b"}, expectedMetricFamilyCount: 1, - expectedHelp: "(Deprecated since 1.15.0) counter help", + expectedHelp: "[ALPHA] (Deprecated since 1.15.0) counter help", }, { desc: "Test hidden", @@ -171,6 +171,19 @@ func TestCounterVec(t *testing.T) { expectedMetricFamilyCount: 0, expectedHelp: "counter help", }, + { + desc: "Test alpha", + CounterOpts: &CounterOpts{ + StabilityLevel: ALPHA, + Namespace: "namespace", + Name: "metric_test_name", + Subsystem: "subsystem", + Help: "counter help", + }, + labels: []string{"label_a", "label_b"}, + expectedMetricFamilyCount: 1, + expectedHelp: "[ALPHA] counter help", + }, } for _, test := range tests {