diff --git a/controller/controller.go b/controller/controller.go index 528d870fa..f3913333a 100644 --- a/controller/controller.go +++ b/controller/controller.go @@ -72,6 +72,14 @@ var ( Help: "Timestamp of last successful sync with the DNS provider", }, ) + lastReconcileTimestamp = prometheus.NewGauge( + prometheus.GaugeOpts{ + Namespace: "external_dns", + Subsystem: "controller", + Name: "last_reconcile_timestamp_seconds", + Help: "Timestamp of last attempted sync with the DNS provider", + }, + ) controllerNoChangesTotal = prometheus.NewCounter( prometheus.CounterOpts{ Namespace: "external_dns", @@ -126,6 +134,7 @@ func init() { prometheus.MustRegister(sourceEndpointsTotal) prometheus.MustRegister(registryEndpointsTotal) prometheus.MustRegister(lastSyncTimestamp) + prometheus.MustRegister(lastReconcileTimestamp) prometheus.MustRegister(deprecatedRegistryErrors) prometheus.MustRegister(deprecatedSourceErrors) prometheus.MustRegister(controllerNoChangesTotal) @@ -161,6 +170,8 @@ type Controller struct { // RunOnce runs a single iteration of a reconciliation loop. func (c *Controller) RunOnce(ctx context.Context) error { + lastReconcileTimestamp.SetToCurrentTime() + records, err := c.Registry.Records(ctx) if err != nil { registryErrorsTotal.Inc() @@ -235,6 +246,7 @@ func (c *Controller) RunOnce(ctx context.Context) error { } lastSyncTimestamp.SetToCurrentTime() + return nil } diff --git a/docs/faq.md b/docs/faq.md index 703669680..043f1f686 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -181,6 +181,7 @@ Here is the full list of available metrics provided by ExternalDNS: | Name | Description | Type | | --------------------------------------------------- | ------------------------------------------------------- | ------- | | external_dns_controller_last_sync_timestamp_seconds | Timestamp of last successful sync with the DNS provider | Gauge | +| external_dns_controller_last_reconcile_timestamp_seconds | Timestamp of last attempted sync with the DNS provider | Gauge | | external_dns_registry_endpoints_total | Number of Endpoints in all sources | Gauge | | external_dns_registry_errors_total | Number of Registry errors | Counter | | external_dns_source_endpoints_total | Number of Endpoints in the registry | Gauge |