Skip to content

Observability

NAuth exposes controller-runtime metrics on /metrics when chart monitoring is enabled. These are Prometheus metrics and can be scraped by Prometheus directly or by the OpenTelemetry Collector Prometheus receiver.

Enable the metrics endpoint:

Terminal window
helm upgrade --install nauth oci://ghcr.io/wirelesscar/nauth \
--namespace nauth \
--create-namespace \
--set monitoring.enabled=true

The reconciliation count metric is:

controller_runtime_reconcile_total{controller="<controller>",result="<result>"}

Current controller labels:

ResourceController labelAvailability
AccountaccountSince v0.1.0
AccountExportaccountexportUnreleased
AccountImportaccountimportUnreleased
UseruserSince v0.1.0
NatsClusternatsclusterSince v0.6.1

Useful Grafana queries:

sum by (controller, result) (rate(controller_runtime_reconcile_total{service="nauth-metrics-service"}[5m]))
increase(controller_runtime_reconcile_total{service="nauth-metrics-service"}[15m])
rate(controller_runtime_reconcile_errors_total{service="nauth-metrics-service"}[5m])

OpenTelemetry Collector scrape example:

receivers:
prometheus:
config:
scrape_configs:
- job_name: nauth
metrics_path: /metrics
static_configs:
- targets:
- nauth-metrics-service.nauth.svc:8080
exporters:
otlp:
endpoint: grafana-agent.grafana.svc:4317
tls:
insecure: true
service:
pipelines:
metrics:
receivers: [prometheus]
exporters: [otlp]