From 0a0835e92dddf98208e84d3ca5661739b7ebf164 Mon Sep 17 00:00:00 2001 From: wojtekt Date: Mon, 4 Feb 2019 08:13:44 +0100 Subject: [PATCH] Add metric exposing amount of processed init events in watchcache --- .../k8s.io/apiserver/pkg/storage/cacher/BUILD | 1 + .../apiserver/pkg/storage/cacher/cacher.go | 20 +++++++++++++++++++ test/e2e/framework/metrics_util.go | 7 +------ 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/staging/src/k8s.io/apiserver/pkg/storage/cacher/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/cacher/BUILD index cdffbdf0b1d..0f47738e315 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/cacher/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/cacher/BUILD @@ -27,6 +27,7 @@ go_library( "//staging/src/k8s.io/apiserver/pkg/storage:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", "//staging/src/k8s.io/client-go/tools/cache:go_default_library", + "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", "//vendor/k8s.io/klog:go_default_library", "//vendor/k8s.io/utils/trace:go_default_library", ], diff --git a/staging/src/k8s.io/apiserver/pkg/storage/cacher/cacher.go b/staging/src/k8s.io/apiserver/pkg/storage/cacher/cacher.go index 512a5775bed..2ff8e463d58 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/cacher/cacher.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/cacher/cacher.go @@ -41,8 +41,24 @@ import ( utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/client-go/tools/cache" utiltrace "k8s.io/utils/trace" + + "github.com/prometheus/client_golang/prometheus" ) +var ( + initCounter = prometheus.NewCounterVec( + prometheus.CounterOpts{ + Name: "apiserver_init_events_total", + Help: "Counter of init events processed in watchcache broken by resource type", + }, + []string{"resource"}, + ) +) + +func init() { + prometheus.MustRegister(initCounter) +} + // Config contains the configuration for a given Cache. type Config struct { // Maximum size of the history cached in memory. @@ -941,6 +957,10 @@ func (c *cacheWatcher) process(initEvents []*watchCacheEvent, resourceVersion ui for _, event := range initEvents { c.sendWatchCacheEvent(event) } + if len(initEvents) > 0 { + objType := reflect.TypeOf(initEvents[0].Object).String() + initCounter.WithLabelValues(objType).Add(float64(len(initEvents))) + } processingTime := time.Since(startTime) if processingTime > initProcessThreshold { objType := "" diff --git a/test/e2e/framework/metrics_util.go b/test/e2e/framework/metrics_util.go index 74c0e559821..106f8015b2f 100644 --- a/test/e2e/framework/metrics_util.go +++ b/test/e2e/framework/metrics_util.go @@ -140,12 +140,7 @@ var InterestingApiServerMetrics = []string{ // TODO(krzysied): apiserver_request_latencies_summary is a deprecated metric. // It should be replaced with new metric. "apiserver_request_latencies_summary", - "etcd_helper_cache_entry_total", - "etcd_helper_cache_hit_total", - "etcd_helper_cache_miss_total", - "etcd_request_cache_add_latency_seconds", - "etcd_request_cache_get_latency_seconds", - "etcd_request_latency_seconds", + "apiserver_init_events_total", } var InterestingControllerManagerMetrics = []string{