Skip to content

Commit

Permalink
Add external_dns_controller_last_reconcile_timestamp_seconds metric
Browse files Browse the repository at this point in the history
  • Loading branch information
gozer committed Jan 26, 2023
1 parent 8862af9 commit 8389939
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 0 deletions.
12 changes: 12 additions & 0 deletions controller/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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()
Expand Down Expand Up @@ -235,6 +246,7 @@ func (c *Controller) RunOnce(ctx context.Context) error {
}

lastSyncTimestamp.SetToCurrentTime()

return nil
}

Expand Down
1 change: 1 addition & 0 deletions docs/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 |
Expand Down

0 comments on commit 8389939

Please sign in to comment.