Sazabi
Log sourcesSend to an endpoint

OpenTelemetry

Set OTEL_EXPORTER_OTLP_ENDPOINT to your Sazabi intake URL to forward logs and traces from any OpenTelemetry SDK directly to Sazabi.

About

Point your OpenTelemetry SDK's OTLP exporter at Sazabi to send logs and traces from any language or framework. Sazabi's intake is OTLP/HTTP-compatible — no custom exporter or plugin required.

Logs and traces arrive as separate streams. Metrics are not stored by this source; use OpenTelemetry Metrics instead.

Prerequisites

  • An application instrumented with any OpenTelemetry SDK (Node.js, Python, Go, Java, Ruby, etc.)
  • Your Sazabi intake URL, shown above — open the log source and copy the Intake URL from its setup screen (the public key is embedded in the URL).

Set up in the dashboard

Install and initialize the OpenTelemetry SDK

Add the OpenTelemetry SDK for your runtime and initialize it with OTLP exporters before your application handles requests.

For Node.js:

bun add @opentelemetry/api @opentelemetry/sdk-node \
  @opentelemetry/auto-instrumentations-node \
  @opentelemetry/exporter-trace-otlp-proto \
  @opentelemetry/exporter-logs-otlp-proto \
  @opentelemetry/sdk-logs

For Python:

pip install opentelemetry-distro opentelemetry-exporter-otlp-proto-http
opentelemetry-bootstrap -a install

Set the exporter environment variables

Configure the following environment variables so they are present when the process starts:

OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
OTEL_EXPORTER_OTLP_ENDPOINT=<your intake URL>

Your intake URL is shown above. It already encodes your project public key.

Sazabi does not store OpenTelemetry metrics sent to this endpoint. To store metrics, use the OpenTelemetry Metrics source, which routes to the correct intake path.

Redeploy the application

Restart or redeploy the application so it picks up the new environment variables and initializes the SDK before handling traffic.

Set up with the CLI

You can also register the OpenTelemetry log source with the Sazabi CLI (installed and authenticated — see CLI reference).

Registering the source mints the same intake URL the dashboard shows above (the public key is embedded in its hostname):

sazabi log-sources create otel --mode connectionless

The command prints the intake URL for the new source — copy the whole URL and point your sender at it using the configuration shown above. Run sazabi log-sources get <log-source-id> at any time to reprint the endpoint, or sazabi log-sources list to see every log source in the project.

Verify

Generate a request or event in your application to produce fresh telemetry. Open the Intake page in the Sazabi dashboard and confirm records from the OpenTelemetry source appear. Logs and traces typically arrive within a minute or two.

You can also start a thread in the dashboard and search for a log attribute you expect to see, such as a service name or route.

Troubleshooting

No records after redeploying — Confirm OTEL_EXPORTER_OTLP_ENDPOINT and OTEL_EXPORTER_OTLP_PROTOCOL are set in the same process that runs your application, not only in a build step or CI environment. Check application output for OpenTelemetry SDK initialization errors.

Traces appear but logs do not — Auto-instrumentation for Node.js configures trace export but not log export. Add an explicit BatchLogRecordProcessor with OTLPLogExporter to your SDK initialization so log records are also exported.

Metrics are not stored — This source does not store OpenTelemetry metrics. Use OpenTelemetry Metrics for metric data.

Export errors in application logs — Verify the intake URL is correct and includes the https:// scheme. The intake endpoint does not require additional authentication headers — the public key is encoded in the URL hostname.

Further reading