Berserk Docs

OpenTelemetry SDKs

Configure an OpenTelemetry SDK to export directly to Berserk

Install and enable your language's OTLP exporter, then copy an address from Settings → Endpoints. Use an ingest token from Settings → Databases → Tokens. The token's routing determines the database and destination tables.

OTLP via HTTP

Replace the base URL and token before starting your instrumented application:

export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
export OTEL_EXPORTER_OTLP_ENDPOINT=https://<your-ingest-host>
export OTEL_EXPORTER_OTLP_HEADERS="authorization=Bearer%20<ingest-token>"
export OTEL_EXPORTER_OTLP_COMPRESSION=gzip

The generic OTEL_EXPORTER_OTLP_ENDPOINT takes a base URL: the exporter appends /v1/traces, /v1/logs or /v1/metrics. A signal-specific variable takes the full signal URL, used as-is:

export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://<your-ingest-host>/v1/traces
export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=https://<your-ingest-host>/v1/logs
export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=https://<your-ingest-host>/v1/metrics

Use https:// for TLS with certificate verification, or http:// for plaintext. Header environment values use the OTLP exporter configuration format; %20 encodes the space after Bearer.

OTLP via gRPC

Use gRPC when your SDK supports it. The Collector takes host:port; an SDK endpoint uses a URL scheme to select transport security:

export OTEL_EXPORTER_OTLP_PROTOCOL=grpc
export OTEL_EXPORTER_OTLP_ENDPOINT=https://<your-ingest-host>:4317
export OTEL_EXPORTER_OTLP_HEADERS="authorization=Bearer%20<ingest-token>"
export OTEL_EXPORTER_OTLP_COMPRESSION=gzip

Use the host and port shown by your installation. For plaintext, change the scheme to http://. Do not append an RPC method path.

Browser applications

Browser JavaScript uses an HTTP exporter. Configure it in application code using the full signal URL and Authorization: Bearer <ingest-token> header. Browsers do not read shell environment variables. Follow your JavaScript SDK's exporter setup; an HTTP address alone does not establish that your installation permits cross-origin requests.

Verify delivery

Trigger an instrumented action and check the SDK's export errors. In Berserk, open the token's database, select the configured destination table for that signal, and filter on your application's service.name in a recent time window.

For an independent test, Settings → Endpoints → OTLP via HTTP provides curl examples for logs, spans and metrics. To forward through a Collector instead, use the complete Collector configuration.

On this page