Ingest from OpenTelemetry¶
OpenTelemetry is an open-source observability framework for collecting, processing, and exporting telemetry data (metrics, traces, and logs) from your applications and infrastructure.
By integrating OpenTelemetry with Tinybird, you can analyze observability data in real time, build dashboards, and enrich it with other data sources.
Some common use cases for sending OpenTelemetry data to Tinybird include:
- Centralizing metrics, traces, and logs for unified analytics.
- Building custom dashboards and alerts on top of observability data.
- Enriching telemetry with business or application data.
Read on to learn how to send data from OpenTelemetry to Tinybird.
Before you start¶
Before you connect OpenTelemetry to Tinybird, ensure:
- You have a Tinybird workspace.
- You have a Tinybird Token with append permissions to the target Data Sources.
- You are running the Tinybird distribution of the OpenTelemetry Collector.
You can find the latest release of the Tinybird OpenTelemetry Collector here:
Use the Tinybird OpenTelemetry project template¶
To get started quickly, you can use the Tinybird OpenTelemetry project template. This template provides ready-to-use Data Sources and Pipes for storing and analyzing your telemetry data in Tinybird.
Recommended OpenTelemetry Collector configuration¶
Below is an example configuration for the Tinybird OpenTelemetry Collector to export metrics, traces, and logs to Tinybird:
config.yaml
receivers: otlp: protocols: grpc: endpoint: 0.0.0.0:4317 http: endpoint: 0.0.0.0:4318 processors: batch: timeout: 10s send_batch_size: 8192 exporters: tinybird: endpoint: ${OTEL_TINYBIRD_API_HOST} # Your Events API endpoint, e.g. https://api.us-east.aws.tinybird.co token: ${OTEL_TINYBIRD_TOKEN} # Token with append permissions sending_queue: enabled: true queue_size: 104857600 # Total memory buffer in bytes (100 MB) sizer: bytes batch: flush_timeout: 5s # Max wait time before flushing min_size: 1024000 # Min batch size: 1 MB max_size: 8388608 # Max batch size: 8 MB (Events API limit is 10 MB) retry_on_failure: enabled: true metrics_sum: datasource: otel_metrics_sum metrics_histogram: datasource: otel_metrics_histogram metrics_exponential_histogram: datasource: otel_metrics_exponential_histogram metrics_gauge: datasource: otel_metrics_gauge traces: datasource: otel_traces logs: datasource: otel_logs service: pipelines: metrics: receivers: [otlp] processors: [batch] exporters: [tinybird] traces: receivers: [otlp] processors: [batch] exporters: [tinybird] logs: receivers: [otlp] processors: [batch] exporters: [tinybird]
Environment variables¶
OTEL_TINYBIRD_API_HOST
: The API host for your Tinybird workspace (e.g.,https://api.tinybird.co
).OTEL_TINYBIRD_TOKEN
: A Tinybird token with append permissions to the target Data Sources (otel_metrics
,otel_traces
,otel_logs
).
You can create a token in the Tinybird UI under Tokens. Make sure it has the required append permissions for the Data Sources you want to ingest into.
Run the Collector¶
Using the binary¶
Precompiled binaries for Linux and macOS are available for both amd64
and arm64
architectures.
Download them from the GitHub Releases page.
./otelcontribcol_linux_amd64 --config config.yaml
Using Docker¶
docker run \ --platform linux/amd64 \ -v $(pwd)/config.yaml:/etc/otelcol-contrib/config.yaml \ -p 4317:4317 \ -p 4318:4318 \ -e OTEL_TINYBIRD_API_HOST="${OTEL_TINYBIRD_API_HOST}" \ -e OTEL_TINYBIRD_TOKEN="${OTEL_TINYBIRD_TOKEN}" \ tinybirdco/opentelemetry-collector-contrib:v0.128.0
Use the --platform linux/amd64
flag to ensure compatibility when running on ARM-based systems like Apple Silicon Macs.
Troubleshooting¶
To troubleshoot your setup, edit your config.yaml
to enable detailed logging from the Collector. You can also check the Tinybird Service Data Sources to confirm data is arriving in your Workspace.
To enable detailed logging, define the debug
exporter and add it to your service pipelines:
config.yaml
#(...) exporters: debug: verbosity: detailed exporters: tinybird: endpoint: ${OTEL_TINYBIRD_API_HOST} #(...) service: pipelines: logs: receivers: [otlp] processors: [batch] exporters: [debug,tinybird] #(...)
You can send mock data with otelgen.
Next steps¶
- Explore and customize the Tinybird OpenTelemetry project template to fit your needs.
- Use the ingested data to build real-time analytics, dashboards, and alerts in Tinybird.
For more details on the available configuration options, see the Tinybird OpenTelemetry Collector documentation.