mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-21 19:01:49 +00:00
Merge pull request #106289 from CatherineF-dev/fix-metrics-AlreadyRegisteredError-in-unit-test
Fix metrics AlreadyRegisteredError on TestRecordOperation and TestGetHistogramVecFromGatherer unit test
This commit is contained in:
commit
42d8b2f3b9
@ -24,15 +24,21 @@ import (
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
||||
"k8s.io/component-base/metrics/legacyregistry"
|
||||
compbasemetrics "k8s.io/component-base/metrics"
|
||||
runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||
"k8s.io/kubernetes/pkg/kubelet/metrics"
|
||||
)
|
||||
|
||||
func TestRecordOperation(t *testing.T) {
|
||||
legacyregistry.MustRegister(metrics.RuntimeOperations)
|
||||
legacyregistry.MustRegister(metrics.RuntimeOperationsDuration)
|
||||
legacyregistry.MustRegister(metrics.RuntimeOperationsErrors)
|
||||
// Use local registry
|
||||
var registry = compbasemetrics.NewKubeRegistry()
|
||||
var gather compbasemetrics.Gatherer = registry
|
||||
|
||||
registry.MustRegister(metrics.RuntimeOperations)
|
||||
registry.MustRegister(metrics.RuntimeOperationsDuration)
|
||||
registry.MustRegister(metrics.RuntimeOperationsErrors)
|
||||
|
||||
registry.Reset()
|
||||
|
||||
l, err := net.Listen("tcp", "127.0.0.1:0")
|
||||
assert.NoError(t, err)
|
||||
@ -40,8 +46,8 @@ func TestRecordOperation(t *testing.T) {
|
||||
|
||||
prometheusURL := "http://" + l.Addr().String() + "/metrics"
|
||||
mux := http.NewServeMux()
|
||||
//lint:ignore SA1019 ignore deprecated warning until we move off of global registries
|
||||
mux.Handle("/metrics", legacyregistry.Handler())
|
||||
handler := compbasemetrics.HandlerFor(gather, compbasemetrics.HandlerOpts{})
|
||||
mux.Handle("/metrics", handler)
|
||||
server := &http.Server{
|
||||
Addr: l.Addr().String(),
|
||||
Handler: mux,
|
||||
|
@ -20,13 +20,11 @@ import (
|
||||
"fmt"
|
||||
"math"
|
||||
"reflect"
|
||||
"sync"
|
||||
"testing"
|
||||
|
||||
"github.com/google/go-cmp/cmp"
|
||||
dto "github.com/prometheus/client_model/go"
|
||||
"k8s.io/component-base/metrics"
|
||||
"k8s.io/component-base/metrics/legacyregistry"
|
||||
"k8s.io/utils/pointer"
|
||||
)
|
||||
|
||||
@ -517,7 +515,6 @@ func TestHistogramVec_Validate(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestGetHistogramVecFromGatherer(t *testing.T) {
|
||||
var registerMetrics sync.Once
|
||||
tests := []struct {
|
||||
name string
|
||||
lvMap map[string]string
|
||||
@ -576,16 +573,17 @@ func TestGetHistogramVecFromGatherer(t *testing.T) {
|
||||
Buckets: buckets,
|
||||
}
|
||||
vec := metrics.NewHistogramVec(HistogramOpts, labels)
|
||||
registerMetrics.Do(func() {
|
||||
legacyregistry.MustRegister(vec)
|
||||
})
|
||||
// Use local registry
|
||||
var registry = metrics.NewKubeRegistry()
|
||||
var gather metrics.Gatherer = registry
|
||||
registry.MustRegister(vec)
|
||||
// Observe two metrics with same value for label1 but different value of label2.
|
||||
vec.WithLabelValues("value1-0", "value2-0").Observe(1.5)
|
||||
vec.WithLabelValues("value1-0", "value2-1").Observe(2.5)
|
||||
vec.WithLabelValues("value1-1", "value2-0").Observe(3.5)
|
||||
vec.WithLabelValues("value1-1", "value2-1").Observe(4.5)
|
||||
metricName := fmt.Sprintf("%s_%s_%s", HistogramOpts.Namespace, HistogramOpts.Subsystem, HistogramOpts.Name)
|
||||
histogramVec, _ := GetHistogramVecFromGatherer(legacyregistry.DefaultGatherer, metricName, tt.lvMap)
|
||||
histogramVec, _ := GetHistogramVecFromGatherer(gather, metricName, tt.lvMap)
|
||||
if diff := cmp.Diff(tt.wantVec, histogramVec); diff != "" {
|
||||
t.Errorf("Got unexpected HistogramVec (-want +got):\n%s", diff)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user