Skip to main content
This guide walks through setting up Dash0 as a telemetry provider for the otel-collector Modal app. The collector fans out every batch to all configured providers; the architecture itself is covered in Telemetry overview. This page covers only the Dash0-specific wiring: the collector registers an otlphttp/dash0 exporter and sends the Dash0-Dataset header when DASH0_DATASET is set.

Endpoints

Dash0 provides regional endpoints:
  • US: https://otel-ingest.us.dash0.com
  • EU: https://otel-ingest.eu.dash0.com
Choose the one nearest your data location.

Setup

1

Add secrets to Infisical

Add three secrets to your Infisical project (prod environment):You can set them from the CLI. Run this from the repo root:
2

Deploy the collector

Once the secrets are set, deploy the otel-collector app:
The collector image build fetches the secrets and embeds them, so when the container starts, Dash0 is already configured.
3

Verify the configuration

Check that Dash0 was included in the collector config:
Output
4

Test the telemetry flow

Use the verification script to test end-to-end telemetry:

How Dash0 fits into the collector

Apps never talk to Dash0 directly. The app-side exporter in libs/telemetry.py serializes each batch to OTLP protobuf and spawns the collector Modal function fire-and-forget; a localhost otelcol sidecar in that container handles retry, queueing, and fan-out to every configured provider, Dash0 included. See Telemetry overview for the full architecture, and src/otel_collector.py for the config builder.

Troubleshooting

Verify the secrets exist in Infisical:
Check the Modal logs for the otel-collector app:
Look for errors like “exporters config: *conf.ExportersConfig.Validate()…”, which indicate a config build error.
  1. Verify the collector is running: uv run modal serve src/otel_collector.py
  2. Check Modal logs for export errors
  3. Verify the OTLP endpoint is reachable from the collector container
  4. Check that the Bearer token is valid
You can enable multiple providers simultaneously — the collector fans out to all configured exporters:

Reference

Last modified on July 16, 2026