OpenTelemetry Export (OTLP)
The OpenTelemetry export card ships the whole gateway’s telemetry — oneSERVER span per request, one log record per proxied request and webhook delivery, and request count / latency metrics every 60 seconds — to a single OTLP/HTTP endpoint. What each signal contains is documented in OpenTelemetry export; this page is the setup.
Scope: Global defaults only. This is the deployment operator’s view of KnoxCall itself: on KnoxCall Cloud it is KnoxCall’s; on a self-hosted deployment it is yours. A workspace that wants its own request logs and metrics in its own collector uses Telemetry export instead.
The three fields
Plus three toggles — Export traces, Export integration logs, Export metrics — all on by default. Turn a signal off rather than pointing it at a backend that rejects it (see Sentry below).
1. Configure
- Settings → Integrations → Global defaults → OpenTelemetry export → Configure.
- Endpoint, headers, service name from the recipe for your backend below.
- Save. Export starts immediately in the API server, across all its workers — no restart.
2. Verify
Spans and log records should appear in your backend within a minute of the next proxied request; metrics on the next 60-second tick. Nothing is logged locally on success, so the backend is the check.Recipes
Endpoints and header names are those published by each vendor at the time of writing; confirm on the vendor’s OTLP settings page, which is also where you mint the credential. Mint a write-only ingest credential in every case — never an admin API key.Grafana Cloud
- Grafana Cloud portal → your stack → Connections → OpenTelemetry (or Configure on the OTLP tile). It shows the endpoint, your instance id and a token generation button.
- Create a token with the
metrics:write,logs:writeandtraces:writescopes. - Grafana authenticates with HTTP Basic:
base64("<instance id>:<token>").
Honeycomb
- Environment settings → API keys → Create ingest key (Send events only).
- Metrics land in a dataset named by a header; traces and logs use the service name.
New Relic
Use an ingest license key, not a user key.Datadog
Datadog ingests OTLP through the Datadog Agent or an OpenTelemetry Collector with the Datadog exporter, not a public OTLP URL. Enable the Agent’s OTLP/HTTP receiver (otlp_config.receiver.protocols.http.endpoint: 0.0.0.0:4318) and point KnoxCall at it — over a private network or TLS, since the Agent has no auth of its own.
SigNoz
Elastic
Elastic Cloud and Elastic APM Server accept OTLP/HTTP natively.Axiom
Sentry
Sentry ingests OTLP traces and logs into the same project as your errors, but not metrics — untick Export metrics or the metric exporter is rejected every 60 seconds. Values and the caveats are in Sentry as an OTLP backend.Splunk, Dynatrace and everything else: a self-run Collector
Any backend that speaks OTLP or has a Collector exporter can be reached through an OpenTelemetry Collector you run. Point KnoxCall at the Collector’s OTLP/HTTP receiver and fan out from there:Environment variables, and who reads what
Two rules a self-hosted operator needs to know:
- The environment wins. This is the opposite of most integrations. If
OTEL_EXPORTER_OTLP_ENDPOINTis set on the host, editing the card changes nothing. - The stored row reaches the API server only. Scheduled jobs, workflow workers and the standalone proxy read the environment variables and never the row. If you want every process covered, configure the environment; use the card for a quick change on the API server.
Things that bite
- Base endpoint only. The most common mistake is pasting a URL that already ends in
/v1/traces. - Headers are a single line.
name=valuepairs separated by commas; a header value containing a comma cannot be expressed here — use the environment variable form with an env-quoted value, or a Collector. - Metrics carry a
knoxcall.tenant_iddimension on this export, so cardinality grows with workspaces; per-workspace exports do not carry it.
Related
- OpenTelemetry export — what each signal contains, semantic conventions
- Telemetry export (per workspace)
- Error tracking (Sentry)