Plugin Store · Exporter
OTLP traces
Ship spans to your OpenTelemetry collector.
Overview
The OTLP exporter is the traces stream: name an instance with module: otlp and a collector URL, and Busbar installs an OpenTelemetry tracer and exports spans over OTLP/HTTP to your existing collector. No instance, no tracer, no span export.
It is SSRF-guarded: loopback is allowed so a local collector works, while a remote endpoint must be https:// and cannot resolve to metadata or private hosts. Credentials are handled cleanly: put them in the URL userinfo and Busbar moves them into an Authorization header and strips them from the URL before anything is logged. Traces flush on graceful shutdown.
One instance only. OTLP installs the one process-global tracer subscriber, so a second module: otlp instance is a loud boot error naming the instance that already claimed it, rather than a second sink that could only lose silently.
This is where the deleted observability: block’s last field went. observability.otlp_url (and the older otlp_endpoint) is now settings.url on an otlp export instance, which is why export: is the single telemetry-egress surface in 1.5.3.
Turn it on
Compiled into the core binary; nothing to download. Name an instance under the top-level export: map:
export:
traces:
module: otlp
streams: [traces]
settings: { url: "http://localhost:4318/v1/traces" } The map KEY (traces) is the instance name; module: is which exporter backs it. New in busbar 1.5.3; it replaces the retired observability.otlp_url (see the migration).
Settings
| Setting | Required | Default | Description |
|---|---|---|---|
url | Yes | — | The OTLP/HTTP traces endpoint, e.g. http://localhost:4318/v1/traces. Loopback is permitted for a local collector; a remote endpoint must be https:// and is SSRF-guarded. |
Built into the core: configured under export:, never downloaded.