Tracing
OTLP Ingestion
Push spans with OpenTelemetry Protocol over HTTP. Only accepted spans are stored in Postgres (and optionally dual-written to ClickHouse).
Endpoint
POST /api/traces/v1/otlp. Auth: Authorization: Bearer tt_… (tracing source token). Create sources under Traces → Ingest; token shown once.
Payload
- OTLP
resourceSpansJSON,{ "spans": [...] }, or gzip. - Batch: up to 500 spans per request.
- Persist fields including
trace_id,span_id,parent_span_id,service,environment,release,session_id, and request /correlation_idwhen provided.
Dual-write
Primary write is always Postgres. When ClickHouse is configured, a secondary fail-open writer dual-writes envelopes for query acceleration. ClickHouse misconfiguration does not fail the ingest request.
Limitations
- Requires
distributed_tracing(Pro+). - gRPC is not a separate product endpoint — use HTTP JSON.
- Rejected spans are not inventively reconstructed later.