apps/docs/content/self-hosting/manage/metrics/overview.mdx
ZITADEL exposes operational and performance metrics to support monitoring, alerting, and capacity planning.
Metrics are enabled by default in standard deployments and are exposed via an HTTP endpoint that can be consumed by Prometheus and other monitoring systems that understand the Prometheus exposition format or use an OpenTelemetry pipeline.
ZITADEL exposes metrics at the following endpoint:
/debug/metrics
This endpoint returns a snapshot of the current metrics in Prometheus-compatible exposition format.
If you changed ports, paths, or network exposure as part of your deployment (for example via Helm values, reverse proxies, or ingress), adjust the endpoint accordingly.
Internally, ZITADEL instruments metrics using OpenTelemetry (OTel).
The exposed metrics include:
Process and runtime metrics (for example Go runtime, memory usage, goroutines)
HTTP and gRPC server metrics (request counts, latencies, error rates)
ZITADEL-specific metrics (server behavior and internal components available in your version)
The exact set of metrics and labels may evolve between ZITADEL releases.
The /debug/metrics endpoint can be consumed in multiple ways:
ZITADEL does not require a specific metrics backend. Any system capable of scraping or ingesting Prometheus-format metrics can be used.
Metrics are enabled by default in standard ZITADEL deployments.
If metrics were explicitly disabled in your configuration, re-enable them before proceeding. The default configuration is defined in the project's defaults.yaml file:
Refer to the configuration documentation for details on enabling or adjusting metrics behavior.
Choose how you want to collect and store metrics:
The following sections describe concrete setups, starting with Prometheus.