Skip to content

Observability

Enroute exports OpenTelemetry traces over OTLP when [telemetry] provides an endpoint. Without that table, spans are written only to the console.

toml
[telemetry]
endpoint = "https://otlp.example.com/v1/traces"
sample_ratio = 1.0

[telemetry.headers]
authorization = "Bearer ${OTEL_TOKEN}"
"x-dataset" = "enroute"
KeyDefaultMeaning
telemetry.endpointnoneFull OTLP traces URL
telemetry.headersnoneCollector headers; values are secret
telemetry.sample_ratio1.0Head-sampling ratio from 0.0 to 1.0

Invalid ratios or header names stop startup. RUST_LOG controls console logs; exported spans retain an INFO minimum level. Lambda ingestion uses OTEL_EXPORTER_OTLP_TRACES_ENDPOINT and OTEL_EXPORTER_OTLP_HEADERS.

Git operation spans record object-store request counts and bytes by storage role. The actor from authorize is attached to the span, so use an internal identifier rather than a credential or email address. Scratch storage is not metered.

Maintenance has no metric, and tenant-refresh failures only produce ERROR logs. Alert on those logs.

Generated from docs/operate/observability.md at ead0474