Endpoint
Authentication
The index attached to the key is ignored for spans. Every span goes to the span store named by
TRACE_INDEX_ID. The key’s index still applies to that key’s log ingestion.Supported content types
Rootprint acceptsapplication/x-protobuf only. Any other Content-Type returns 415 Unsupported Media Type.
Set OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf on any runtime that can pick a protocol.
Environment variables
The endpoint variable takes the full path, not a base URL.
Set up your service
- Python
- Node.js
- Go
- OpenTelemetry Collector
Install the zero-code agent. Set the environment. Metrics and logs are switched off here — they default to Run your app under the agent. Exercise a route and the spans are batched and exported within a few seconds.
opentelemetry-distro brings the agent and the SDK; opentelemetry-bootstrap reads your installed packages and adds the matching instrumentation libraries, so Flask, Django, FastAPI, requests, and psycopg are traced without touching your code.otlp and would retry localhost:4318 forever.Correlate spans with logs
Spans are reached from a log. Ship logs from the same service as well, and Rootprint pairs the two bytrace_id so any log row opens its trace. See Send logs and Read a trace.
For the Collector, pairing works once the application’s own log records carry trace context — for example through an OpenTelemetry log appender. It does not work for tailed stdout or file lines, which have no trace context to carry.
Response codes
Errors use the
google.rpc.Status encoding. 415 is JSON; every other error is binary protobuf, because an exporter that sent the wrong content type may not decode protobuf back.
Related
- Traces
- Read a trace
- OTLP reference for the logs endpoint

