--- title: Metrics description: "Monitor ZITADEL operational performance using Prometheus-compatible metrics exposed via the /debug/metrics endpoint." --- ## Metrics 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. ## Metrics endpoint 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. ## Instrumentation model 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. ## Collection and compatibility The `/debug/metrics` endpoint can be consumed in multiple ways: - **Prometheus** can scrape the endpoint directly. - **OpenTelemetry Collector** can scrape the endpoint using a Prometheus receiver and forward metrics to other backends. - **Managed monitoring platforms** (for example Grafana Cloud, Amazon Managed Service for Prometheus, Datadog, New Relic) can ingest the same endpoint via Prometheus-compatible agents or collectors. ZITADEL does **not** require a specific metrics backend. Any system capable of scraping or ingesting Prometheus-format metrics can be used. ## Settings 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: - https://github.com/zitadel/zitadel/blob/main/cmd/defaults.yaml Refer to the configuration documentation for details on enabling or adjusting metrics behavior. ## Next steps Choose how you want to collect and store metrics: - **Prometheus** — scrape metrics directly from ZITADEL - **OpenTelemetry Collector** — aggregate and forward metrics to another backend - **Managed observability platforms** — use their Prometheus-compatible agents The following sections describe concrete setups, starting with **Prometheus**.