OpenTelemetry
Oodle is an OpenTelemetry-native backend. It accepts OTLP for every signal on one endpoint, with one set of headers:
| Signal | What Oodle does with it |
|---|---|
| Metrics | Stored as Prometheus-compatible series, queried with PromQL |
| Logs | Indexed for search, aggregation and log-based metrics |
| Traces | Trace Explorer, Trace Graph service map, error tracking |
| Agent traces | Spans that follow the GenAI semantic conventions get the transcript, token counts, cost and Signals |
Oodle is a managed observability platform for metrics, logs, traces and agent traces. It ingests OpenTelemetry natively, so the snippet on this page is the complete setup.
Sign up for free to get an instance ID and an API key.
Endpoint and headers
You will need:
OODLE_INSTANCE: your Oodle instance ID (ap1, us1)OODLE_API_KEY: an Oodle API key (ap1, us1)OTLP_ENDPOINT: your OTLP collector domain, shown on the Open Telemetry tile on the ap1, us1 page
Every request carries the instance and the key as headers. The
gateway answers 401 without them.
Through a collector
Add one otlphttp exporter and put it on each pipeline you want to
send:
receivers:
otlp:
protocols:
http:
grpc:
processors:
batch:
exporters:
otlphttp/oodle:
endpoint: "https://<OTLP_ENDPOINT>"
headers:
X-OODLE-INSTANCE: "<OODLE_INSTANCE>"
X-API-KEY: "<OODLE_API_KEY>"
service:
pipelines:
metrics:
receivers: [otlp]
processors: [batch]
exporters: [otlphttp/oodle]
logs:
receivers: [otlp]
processors: [batch]
exporters: [otlphttp/oodle]
traces:
receivers: [otlp]
processors: [batch]
exporters: [otlphttp/oodle]
Redaction, sampling and attribute filtering belong in the collector, between your applications and Oodle.
Straight from the SDK
Any OpenTelemetry SDK exports to Oodle with the standard environment variables and no code change:
export OTEL_EXPORTER_OTLP_ENDPOINT=https://<OTLP_ENDPOINT>
export OTEL_EXPORTER_OTLP_HEADERS="X-API-KEY=<OODLE_API_KEY>,X-OODLE-INSTANCE=<OODLE_INSTANCE>"
export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
export OTEL_SERVICE_NAME=my-service
Per-signal guides
- Metrics: collector setup and zero-code instrumentation for Java, Python and Node.js
- Logs: collector setup for logs
- Traces: collector setup and SDK exporters for Go and Java
- Agent Observability: one page per LLM SDK and agent framework, each a paste-ready snippet
Verify
Metrics appear in ap1, us1, logs in ap1, us1, traces in ap1, us1 and agent traces in ap1, us1.
Support
If you need assistance or have any questions, please reach out to us through:
- Email at [email protected]