Skip to main content

OpenTelemetry

Community-contributed integration

This integration is community-maintained. Reference: ory/integrates/monitoring-observability/opentelemetry.

Ory natively supports OpenTelemetry. Self-hosted products (Ory Kratos, Ory Hydra, Ory Keto, Ory Oathkeeper) ship an OTLP exporter and list OpenTelemetry as the recommended tracing backend in the Ory observability docs.

The OTLP exporter carries traces. Metrics are exposed separately on each service's Prometheus endpoint and logs are written to stdout — neither is exported over OTLP.

See the self-hosted distributed tracing docs (OpenTelemetry is the recommended backend), the self-hosted observability docs, and the Kratos tracing guide.

Self-hosted only

Ory Network does not export OTLP telemetry to customer-owned collectors. Project configuration on Ory Network deliberately excludes operational settings such as tracing, logging, and port — the managed control plane's telemetry stays internal. Use the Ory Console's Activity > Logs & Events view for Ory Network observability.

Self-hosted Ory with the native OTLP exporter

Each Ory product accepts standard OTel environment variables to ship traces directly to a collector or backend:

TRACING_PROVIDER=otel
OTEL_EXPORTER_OTLP_ENDPOINT=https://otel-collector.example.com:4318
OTEL_SERVICE_NAME=ory-kratos # or hydra/keto/oathkeeper
OTEL_RESOURCE_ATTRIBUTES=service.namespace=identity,deployment.environment=production
TRACING_PROVIDERS_OTLP_SAMPLING_SAMPLING_RATIO=1.0 # tune in production

TRACING_PROVIDER accepts otel, jaeger, or zipkin. Use otel for OTLP.

For production, run an OpenTelemetry Collector in front of your final backend:

Ory ─OTLP─▶ OTel Collector ─export─▶ Tempo / Datadog / New Relic / Honeycomb / ...
(batch, retry, sample, redact)

The collector handles batching, retries, sampling, and PII redaction in one place, so you can swap backends without touching the Ory configuration.

Resources