Merge pull request #85289 from serathius/remove-prometheus-controller-endpointslice

Remove prometheus references from pkg/controller/endpointslice
This commit is contained in:
Kubernetes Prow Robot 2020-03-05 02:58:37 -08:00 committed by GitHub
commit 0836b583f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 51 additions and 40 deletions

View File

@ -72,8 +72,7 @@ go_test(
"//staging/src/k8s.io/client-go/listers/core/v1:go_default_library", "//staging/src/k8s.io/client-go/listers/core/v1:go_default_library",
"//staging/src/k8s.io/client-go/testing:go_default_library", "//staging/src/k8s.io/client-go/testing:go_default_library",
"//staging/src/k8s.io/client-go/tools/cache:go_default_library", "//staging/src/k8s.io/client-go/tools/cache:go_default_library",
"//staging/src/k8s.io/component-base/metrics:go_default_library", "//staging/src/k8s.io/component-base/metrics/testutil:go_default_library",
"//vendor/github.com/prometheus/client_model/go:go_default_library",
"//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library",
"//vendor/k8s.io/utils/pointer:go_default_library", "//vendor/k8s.io/utils/pointer:go_default_library",
], ],

View File

@ -24,7 +24,6 @@ import (
"testing" "testing"
"time" "time"
dto "github.com/prometheus/client_model/go"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
corev1 "k8s.io/api/core/v1" corev1 "k8s.io/api/core/v1"
@ -36,7 +35,7 @@ import (
"k8s.io/client-go/kubernetes/fake" "k8s.io/client-go/kubernetes/fake"
corelisters "k8s.io/client-go/listers/core/v1" corelisters "k8s.io/client-go/listers/core/v1"
k8stesting "k8s.io/client-go/testing" k8stesting "k8s.io/client-go/testing"
compmetrics "k8s.io/component-base/metrics" "k8s.io/component-base/metrics/testutil"
"k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/controller"
"k8s.io/kubernetes/pkg/controller/endpointslice/metrics" "k8s.io/kubernetes/pkg/controller/endpointslice/metrics"
utilpointer "k8s.io/utils/pointer" utilpointer "k8s.io/utils/pointer"
@ -884,47 +883,61 @@ type expectedMetrics struct {
func expectMetrics(t *testing.T, em expectedMetrics) { func expectMetrics(t *testing.T, em expectedMetrics) {
t.Helper() t.Helper()
actualDesiredSlices := getGaugeMetricValue(t, metrics.DesiredEndpointSlices.WithLabelValues()) actualDesiredSlices, err := testutil.GetGaugeMetricValue(metrics.DesiredEndpointSlices.WithLabelValues())
handleErr(t, err, "desiredEndpointSlices")
if actualDesiredSlices != float64(em.desiredSlices) { if actualDesiredSlices != float64(em.desiredSlices) {
t.Errorf("Expected desiredEndpointSlices to be %d, got %v", em.desiredSlices, actualDesiredSlices) t.Errorf("Expected desiredEndpointSlices to be %d, got %v", em.desiredSlices, actualDesiredSlices)
} }
actualNumSlices := getGaugeMetricValue(t, metrics.NumEndpointSlices.WithLabelValues()) actualNumSlices, err := testutil.GetGaugeMetricValue(metrics.NumEndpointSlices.WithLabelValues())
handleErr(t, err, "numEndpointSlices")
if actualDesiredSlices != float64(em.desiredSlices) { if actualDesiredSlices != float64(em.desiredSlices) {
t.Errorf("Expected numEndpointSlices to be %d, got %v", em.actualSlices, actualNumSlices) t.Errorf("Expected numEndpointSlices to be %d, got %v", em.actualSlices, actualNumSlices)
} }
actualEndpointsDesired := getGaugeMetricValue(t, metrics.EndpointsDesired.WithLabelValues()) actualEndpointsDesired, err := testutil.GetGaugeMetricValue(metrics.EndpointsDesired.WithLabelValues())
handleErr(t, err, "desiredEndpoints")
if actualEndpointsDesired != float64(em.desiredEndpoints) { if actualEndpointsDesired != float64(em.desiredEndpoints) {
t.Errorf("Expected desiredEndpoints to be %d, got %v", em.desiredEndpoints, actualEndpointsDesired) t.Errorf("Expected desiredEndpoints to be %d, got %v", em.desiredEndpoints, actualEndpointsDesired)
} }
actualAddedPerSync := getHistogramMetricValue(t, metrics.EndpointsAddedPerSync.WithLabelValues()) actualAddedPerSync, err := testutil.GetHistogramMetricValue(metrics.EndpointsAddedPerSync.WithLabelValues())
handleErr(t, err, "endpointsAddedPerSync")
if actualAddedPerSync != float64(em.addedPerSync) { if actualAddedPerSync != float64(em.addedPerSync) {
t.Errorf("Expected endpointsAddedPerSync to be %d, got %v", em.addedPerSync, actualAddedPerSync) t.Errorf("Expected endpointsAddedPerSync to be %d, got %v", em.addedPerSync, actualAddedPerSync)
} }
actualRemovedPerSync := getHistogramMetricValue(t, metrics.EndpointsRemovedPerSync.WithLabelValues()) actualRemovedPerSync, err := testutil.GetHistogramMetricValue(metrics.EndpointsRemovedPerSync.WithLabelValues())
handleErr(t, err, "endpointsRemovedPerSync")
if actualRemovedPerSync != float64(em.removedPerSync) { if actualRemovedPerSync != float64(em.removedPerSync) {
t.Errorf("Expected endpointsRemovedPerSync to be %d, got %v", em.removedPerSync, actualRemovedPerSync) t.Errorf("Expected endpointsRemovedPerSync to be %d, got %v", em.removedPerSync, actualRemovedPerSync)
} }
actualCreated := getCounterMetricValue(t, metrics.EndpointSliceChanges.WithLabelValues("create")) actualCreated, err := testutil.GetCounterMetricValue(metrics.EndpointSliceChanges.WithLabelValues("create"))
handleErr(t, err, "endpointSliceChangesCreated")
if actualCreated != float64(em.numCreated) { if actualCreated != float64(em.numCreated) {
t.Errorf("Expected endpointSliceChangesCreated to be %d, got %v", em.numCreated, actualCreated) t.Errorf("Expected endpointSliceChangesCreated to be %d, got %v", em.numCreated, actualCreated)
} }
actualUpdated := getCounterMetricValue(t, metrics.EndpointSliceChanges.WithLabelValues("update")) actualUpdated, err := testutil.GetCounterMetricValue(metrics.EndpointSliceChanges.WithLabelValues("update"))
handleErr(t, err, "endpointSliceChangesUpdated")
if actualUpdated != float64(em.numUpdated) { if actualUpdated != float64(em.numUpdated) {
t.Errorf("Expected endpointSliceChangesUpdated to be %d, got %v", em.numUpdated, actualUpdated) t.Errorf("Expected endpointSliceChangesUpdated to be %d, got %v", em.numUpdated, actualUpdated)
} }
actualDeleted := getCounterMetricValue(t, metrics.EndpointSliceChanges.WithLabelValues("delete")) actualDeleted, err := testutil.GetCounterMetricValue(metrics.EndpointSliceChanges.WithLabelValues("delete"))
handleErr(t, err, "desiredEndpointSlices")
if actualDeleted != float64(em.numDeleted) { if actualDeleted != float64(em.numDeleted) {
t.Errorf("Expected endpointSliceChangesDeleted to be %d, got %v", em.numDeleted, actualDeleted) t.Errorf("Expected endpointSliceChangesDeleted to be %d, got %v", em.numDeleted, actualDeleted)
} }
} }
func handleErr(t *testing.T, err error, metricName string) {
if err != nil {
t.Errorf("Failed to get %s value, err: %v", metricName, err)
}
}
func setupMetrics() { func setupMetrics() {
metrics.RegisterMetrics() metrics.RegisterMetrics()
metrics.NumEndpointSlices.Delete(map[string]string{}) metrics.NumEndpointSlices.Delete(map[string]string{})
@ -936,30 +949,3 @@ func setupMetrics() {
metrics.EndpointSliceChanges.Delete(map[string]string{"operation": "update"}) metrics.EndpointSliceChanges.Delete(map[string]string{"operation": "update"})
metrics.EndpointSliceChanges.Delete(map[string]string{"operation": "delete"}) metrics.EndpointSliceChanges.Delete(map[string]string{"operation": "delete"})
} }
func getGaugeMetricValue(t *testing.T, metric compmetrics.GaugeMetric) float64 {
t.Helper()
metricProto := &dto.Metric{}
if err := metric.Write(metricProto); err != nil {
t.Errorf("Error writing metric: %v", err)
}
return metricProto.Gauge.GetValue()
}
func getCounterMetricValue(t *testing.T, metric compmetrics.CounterMetric) float64 {
t.Helper()
metricProto := &dto.Metric{}
if err := metric.(compmetrics.Metric).Write(metricProto); err != nil {
t.Errorf("Error writing metric: %v", err)
}
return metricProto.Counter.GetValue()
}
func getHistogramMetricValue(t *testing.T, metric compmetrics.ObserverMetric) float64 {
t.Helper()
metricProto := &dto.Metric{}
if err := metric.(compmetrics.Metric).Write(metricProto); err != nil {
t.Errorf("Error writing metric: %v", err)
}
return metricProto.Histogram.GetSampleSum()
}

View File

@ -87,7 +87,6 @@ package_group(
name = "prometheus_import_allow_list", name = "prometheus_import_allow_list",
packages = [ packages = [
"//cluster/images/etcd-version-monitor", "//cluster/images/etcd-version-monitor",
"//pkg/controller/endpointslice",
"//pkg/master", "//pkg/master",
"//pkg/scheduler/framework/v1alpha1", "//pkg/scheduler/framework/v1alpha1",
"//pkg/volume/util/operationexecutor", "//pkg/volume/util/operationexecutor",

View File

@ -320,3 +320,30 @@ func (hist *Histogram) Validate() error {
return nil return nil
} }
// GetGaugeMetricValue extract metric value from GaugeMetric
func GetGaugeMetricValue(m metrics.GaugeMetric) (float64, error) {
metricProto := &dto.Metric{}
if err := m.Write(metricProto); err != nil {
return 0, fmt.Errorf("Error writing m: %v", err)
}
return metricProto.Gauge.GetValue(), nil
}
// GetCounterMetricValue extract metric value from CounterMetric
func GetCounterMetricValue(m metrics.CounterMetric) (float64, error) {
metricProto := &dto.Metric{}
if err := m.(metrics.Metric).Write(metricProto); err != nil {
return 0, fmt.Errorf("Error writing m: %v", err)
}
return metricProto.Counter.GetValue(), nil
}
// GetHistogramMetricValue extract sum of all samples from ObserverMetric
func GetHistogramMetricValue(m metrics.ObserverMetric) (float64, error) {
metricProto := &dto.Metric{}
if err := m.(metrics.Metric).Write(metricProto); err != nil {
return 0, fmt.Errorf("Error writing m: %v", err)
}
return metricProto.Histogram.GetSampleSum(), nil
}