OpenTelemetry SDKs
Configure an OpenTelemetry SDK to export directly to Berserk
Install your language's OTLP exporter and copy an address from Settings → Endpoints. On Managed Berserk the addresses are ingest.<your-domain>:4317 for gRPC and https://ingest.<your-domain>:4318 for HTTP. If a self-hosted install lists none, its operator publishes them: Ingest Endpoints.
Use an ingest token from Settings → Databases → Tokens. Its routing decides the database and tables.
OTLP via gRPC (recommended)
gRPC is more efficient than HTTP. Use it when your SDK supports it:
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=gzipThe scheme selects transport security: https:// for TLS, http:// for plaintext. Do not append an RPC method path. Header values use the OTLP exporter configuration format; %20 encodes the space after Bearer.
OTLP via HTTP
For SDKs or runtimes without gRPC:
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=gzipOTEL_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:
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/metricsBrowser applications
A browser exporter uses HTTP and is configured in application code with the full signal URL; see your JavaScript SDK's exporter setup.
The ingest endpoint has no CORS support: it answers no OPTIONS preflight and sends no Access-Control-Allow-* headers, so an exporter on a page from another origin fails. Send browser telemetry to a collector or proxy that answers CORS and adds the Authorization: Bearer <ingest-token> header. On Managed Berserk, ask the Berserk team.
Verify delivery
Trigger an instrumented action and check the SDK's export errors. In Berserk, query the token's destination table for that signal, filtered on your application's service.name.
Settings → Endpoints → OTLP via HTTP has curl examples for logs, spans and metrics. To send through a Collector instead, see OpenTelemetry Collector.