diff --git a/staging/src/k8s.io/cloud-provider/controllers/route/metrics.go b/staging/src/k8s.io/cloud-provider/controllers/route/metrics.go new file mode 100644 index 00000000000..6f2e55e9fb3 --- /dev/null +++ b/staging/src/k8s.io/cloud-provider/controllers/route/metrics.go @@ -0,0 +1,30 @@ +package route + +import ( + "sync" + + "k8s.io/component-base/metrics" + "k8s.io/component-base/metrics/legacyregistry" +) + +const ( + // subsystem is the name of this subsystem used for prometheus metrics. + subsystem = "route_controller" +) + +var registration sync.Once + +var ( + routeSyncCount = metrics.NewCounter(&metrics.CounterOpts{ + Name: "route_sync_total", + Subsystem: subsystem, + Help: "A metric counting the amount of times routes have been synced with the cloud provider.", + StabilityLevel: metrics.BETA, + }) +) + +func registerMetrics() { + registration.Do(func() { + legacyregistry.MustRegister(routeSyncCount) + }) +} diff --git a/staging/src/k8s.io/cloud-provider/controllers/route/route_controller.go b/staging/src/k8s.io/cloud-provider/controllers/route/route_controller.go index c7e6c57e7da..ad897ac85b0 100644 --- a/staging/src/k8s.io/cloud-provider/controllers/route/route_controller.go +++ b/staging/src/k8s.io/cloud-provider/controllers/route/route_controller.go @@ -87,6 +87,8 @@ func New( clusterName string, clusterCIDRs []*net.IPNet, ) (*RouteController, error) { + registerMetrics() + if len(clusterCIDRs) == 0 { klog.Fatal("RouteController: Must specify clusterCIDR.") } @@ -247,6 +249,8 @@ func (rc *RouteController) processNextWorkItem(ctx context.Context) bool { } func (rc *RouteController) reconcileNodeRoutes(ctx context.Context) error { + routeSyncCount.Inc() + routeList, err := rc.routes.ListRoutes(ctx, rc.clusterName) if err != nil { return fmt.Errorf("error listing routes: %v", err)