Skip to main content

OpenTelemetry

Oodle is an OpenTelemetry-native backend. It accepts OTLP for every signal on one endpoint, with one set of headers:

SignalWhat Oodle does with it
MetricsStored as Prometheus-compatible series, queried with PromQL
LogsIndexed for search, aggregation and log-based metrics
TracesTrace Explorer, Trace Graph service map, error tracking
Agent tracesSpans that follow the GenAI semantic conventions get the transcript, token counts, cost and Signals
New to Oodle?

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:

otel-collector-config.yaml
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: