From 398b49b3d46afe429644cb0b2d9c3439e5529ece Mon Sep 17 00:00:00 2001 From: Martin Linkhorst Date: Wed, 28 Nov 2018 15:02:05 +0100 Subject: [PATCH] feat(controller): expose managed resources and records as metrics --- controller/controller.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/controller/controller.go b/controller/controller.go index fec621bc8..769c6553a 100644 --- a/controller/controller.go +++ b/controller/controller.go @@ -40,11 +40,29 @@ var ( Help: "Number of Source errors.", }, ) + sourceEndpointsTotal = prometheus.NewGauge( + prometheus.GaugeOpts{ + Namespace: "external_dns", + Subsystem: "source", + Name: "endpoints_total", + Help: "Number of Endpoints in all sources", + }, + ) + registryEndpointsTotal = prometheus.NewGauge( + prometheus.GaugeOpts{ + Namespace: "external_dns", + Subsystem: "registry", + Name: "endpoints_total", + Help: "Number of Endpoints in the registry", + }, + ) ) func init() { prometheus.MustRegister(registryErrors) prometheus.MustRegister(sourceErrors) + prometheus.MustRegister(sourceEndpointsTotal) + prometheus.MustRegister(registryEndpointsTotal) } // Controller is responsible for orchestrating the different components. @@ -69,12 +87,14 @@ func (c *Controller) RunOnce() error { registryErrors.Inc() return err } + registryEndpointsTotal.Set(float64(len(records))) endpoints, err := c.Source.Endpoints() if err != nil { sourceErrors.Inc() return err } + sourceEndpointsTotal.Set(float64(len(endpoints))) plan := &plan.Plan{ Policies: []plan.Policy{c.Policy},