otelcol-contrib) on a Linux ARM64 host. You’ll learn how to pick the right release, place a minimal config file, and start the collector to receive OTLP telemetry (traces and metrics).
Overview
- Select the correct release for your OS/architecture from the OpenTelemetry Collector Releases on GitHub: https://github.com/open-telemetry/opentelemetry-collector-releases/releases
- Download the appropriate tarball (example used in this lesson:
otelcol-contrib_0.135.0_linux_arm64.tar.gz) - Extract the tarball and run
otelcol-contribwith a configuration file (--config)
Ensure you download the binary that matches your OS and CPU architecture (for example,
linux/amd64 vs linux/arm64). This lesson demonstrates the Linux/ARM64 tarball.Quick commands (summary)
| Step | Command / Action | Notes |
|---|---|---|
| Download release | See the Releases page above | Pick the tarball for your platform |
| Extract tarball | tar -xzf otelcol-contrib_0.135.0_linux_arm64.tar.gz | Produces the otelcol-contrib binary (and docs) |
| Start collector | ./otelcol-contrib --config=config.yaml | --config points to the collector config file |
| Validate config | ./otelcol-contrib validate --config=config.yaml | Validate config without running |
1) Download and extract the release tarball
From the GitHub Releases page, download the tarball matching your platform. Example filename used in this lesson:otelcol-contrib_0.135.0_linux_arm64.tar.gz
Extract the tarball (run from the directory containing the downloaded file):
otelcol-contrib binary (plus documentation). The binary is all that’s required for this demo.
2) Check flags and required config
If you run the collector without a configuration file, it will exit with an error:--config (or --config=file:/path/to/config.yaml), which tells the collector where to load its configuration.
3) Minimal configuration example
Create a minimalconfig.yaml that accepts OTLP telemetry (traces and metrics) and uses the debug exporter (prints telemetry to the console). Save this file in the same directory as the otelcol-contrib binary:
4) Start the collector with the config
Run the collector and point it at the config file:- OTLP gRPC is listening on port
4317 - OTLP HTTP is listening on port
4318 - The
debugexporter logs telemetry to stdout for inspection
| Protocol | Endpoint | Use case |
|---|---|---|
| OTLP gRPC | localhost:4317 | gRPC-based OTLP clients |
| OTLP HTTP | http://localhost:4318 | HTTP-based OTLP clients |
5) Validate and troubleshoot
- Validate configuration without running the collector:
- If the collector fails to start, check:
- Binary architecture vs OS/CPU (ARM64 vs AMD64)
- File permissions (make binary executable:
chmod +x otelcol-contrib) - Config syntax and indentation (YAML errors)
- Port conflicts on
4317/4318
If you see startup errors related to configuration or ports, use the
validate command and inspect the logs printed by the debug exporter. Also confirm the downloaded binary matches your system architecture.6) Next steps
- Send telemetry to the collector:
- gRPC OTLP clients ->
localhost:4317 - HTTP OTLP clients ->
http://localhost:4318
- gRPC OTLP clients ->
- For production usage, extend the configuration with processors (batching, sampling), secure receivers (TLS/auth), and exporters to your backend (e.g., OTLP/gRPC to an observability platform).
- Explore
otelcol-contrib componentsto list available receivers/exporters/processors in the binary.
- OpenTelemetry Collector Releases: https://github.com/open-telemetry/opentelemetry-collector-releases/releases
- OpenTelemetry Collector documentation: https://opentelemetry.io/docs/collector/