// opentelemetry
Point an existing OTLP exporter at Beaam, and let it decide what genuinely needs your attention — without adopting a new agent.
Beaam accepts OTLP/HTTP metrics (ADR-0005). If you already emit OTel metrics, you point your exporter at Beaam — no re-instrumentation. This is the bring-your-own path; it takes about five minutes.
A stack is one logical app + environment (e.g. “Acme — production”). It’s the scope telemetry is grouped under and the thing your ingest key authenticates.
Settings → Stacks → create one. The ingest key (bik_…) is shown once —
save it. (Leaked or lost it? Rotate on the same screen; the old key dies
immediately.)
Endpoint: https://app.beaam.app/api/otlp/metrics
Auth: Authorization: Bearer <your ingest key>
exporters:
otlphttp/beaam:
endpoint: https://app.beaam.app/api/otlp
headers:
authorization: Bearer bik_your_key_here
service:
pipelines:
metrics:
exporters: [otlphttp/beaam]
export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=https://app.beaam.app/api/otlp/metrics
export OTEL_EXPORTER_OTLP_METRICS_HEADERS="authorization=Bearer bik_your_key_here"
export OTEL_EXPORTER_OTLP_METRICS_PROTOCOL=http/json
curl -X POST https://app.beaam.app/api/otlp/metrics \
-H "authorization: Bearer bik_your_key_here" \
-H "content-type: application/json" \
-d '{"resourceMetrics":[{"resource":{"attributes":[
{"key":"service.name","value":{"stringValue":"my-service"}}]},
"scopeMetrics":[{"metrics":[{"name":"orders.processed",
"gauge":{"dataPoints":[{"asInt":"1"}]}}]}]}]}'
A {"ok":true,...,"stored":1} response means it worked. The stack’s Connect
panel flips to “First metric received” within a few seconds.
query-metrics, or the
in-app views). service.name names each service; service.namespace is set
to your stack automatically regardless of what you send.429 — reduce export
frequency.400 (not silently dropped); valid OTLP carrying no
datapoints is accepted as stored: 0.Metrics are live today. Logs and traces are on the roadmap (the endpoints return
501 until then — never a silent drop).
Notes:
/api/otlp/metrics. Protobuf is not decoded: the
endpoint parses the body as JSON and answers 415 with
Send OTLP/JSON (application/json) otherwise, so an exporter left on the
SDK default of http/protobuf fails on its first export. Set the protocol
explicitly, as above.otlphttp exporter is
https://app.beaam.app/api/otlp (it appends /metrics); the SDK metrics
endpoint is the full .../api/otlp/metrics.This page is generated from docs/quickstart-otel.md in the Beaam repository, so it stays in step with the implementation. Something unclear or wrong?Tell us — and see theAPI reference for the full list of operations.