Ask AI is now on the home page — ask a question and get a sourced answer from the Ory docs. You'll also find it in the bottom-right corner of any page.

Skip to main content

Prometheus metrics

Ory Talos exposes Prometheus metrics in commercial builds only. The commercial build tag gates both the HTTP request middleware (below) and the /metrics scrape endpoint. The OSS build ships a no-op metrics implementation and doesn't register /metrics.

Endpoint (commercial)

Scrape metrics from /metrics on the metrics server:

GET http://localhost:4422/metrics

The metrics server listens on the metrics port (default 4422), separate from the main HTTP port (default 4420). It also serves /health/alive and /health/ready.

HTTP metrics

MetricTypeLabelsDescription
http_requests_totalCountermethod, code, endpointTotal HTTP requests
http_request_duration_secondsHistogrammethod, code, endpointRequest latency
http_request_size_bytesHistogrammethod, codeRequest payload size
http_response_size_bytesHistogrammethod, codeResponse payload size
http_requests_in_flightGauge--Concurrent requests

Labels

LabelDescriptionUsed by
methodHTTP method (lowercase)All except http_requests_in_flight
codeHTTP status codeAll except http_requests_in_flight
endpointRoute template, for example /v2alpha1/admin/issuedApiKeys/{key_id}http_requests_total, http_request_duration_seconds

Configuration

Only the commercial edition honors the serve.metrics block. Both fields are immutable: changing them requires a server restart.

serve:
metrics: # Requires a commercial license.
host: "0.0.0.0"
port: 4422

Proxy metrics (commercial)

The edge proxy exposes additional metrics under the talos_proxy_ namespace. See Edge proxy — Metrics for the table.

Example queries

The commercial edition ships starter Grafana dashboards under commercial/observability/grafana/dashboards/boards/: platform-overview.json, http-api.json, api-lifecycle.json, database-health.json, and verification-slo.json. Start from these queries:

  • Request rate: rate(http_requests_total[5m])
  • P99 latency: histogram_quantile(0.99, rate(http_request_duration_seconds_bucket[5m]))
  • Error rate: rate(http_requests_total{code=~"5.."}[5m])