Vendor-agnostic way to collect, process, and export traces, metrics, and logs.
V

Vendor-agnostic way to collect, process, and export traces, metrics, and logs.

Vendor-agnostic way to collect, process, and export traces, metrics, and logs.

7,192 stars
N/A forks
N/A contributors

README

Project documentation from GitHub

OpenTelemetry Collector: The Universal Data Router for Observability

If you're building modern applications, you probably have traces here, metrics there, and logs scattered across a dozen services. Getting them all into a single observability backend usually means coupling your code to a specific vendor's SDK or writing fragile pipelines. There's a better way.

The OpenTelemetry Collector is a vendor-agnostic agent that receives, processes, and exports telemetry data. Think of it as a smart middleman for your traces, metrics, and logs. It works with any backend that supports OpenTelemetry — and most modern observability platforms do.

What It Does

The Collector is a single binary you run alongside your application (or as a sidecar). It listens for telemetry data from your apps, applies transformations (like adding resource attributes or sampling), and forwards the cleaned data to one or more backends.

It supports three main modes:

  • As a gateway — deployed as a standalone service that all your apps send data to
  • As a sidecar — runs next to each app instance for isolation
  • As a central collector — aggregates data from multiple sources before exporting

You configure it with a YAML file that defines receivers (how to get data), processors (what to do with it), and exporters (where to send it).

Why It's Cool

Vendor neutrality is the killer feature. You can switch from Datadog to Grafana Cloud to your own self-hosted setup without touching a single line of application code. Just change the exporter configuration.

The Collector can also:

  • Reduce noise — use tail-based sampling to keep only the traces that matter
  • Add context — enrich spans with Kubernetes metadata or environment labels
  • Filter data — drop unnecessary logs or metrics before they reach your budget-crushing backend
  • Bridge protocols — accept Jaeger traces and send them to a Prometheus-compatible store

And it's battle-tested. The OpenTelemetry project is backed by major cloud providers and observability companies. The Collector is the recommended way to ship data for production workloads.

How to Try It

The quickest way to see it in action is with the Docker image:

docker run -p 4317:4317 -p 4318:4318 otel/opentelemetry-collector:latest

Then configure your application to send OTLP (OpenTelemetry Protocol) data to localhost:431

Did you like this issue?

Join our weekly newsletter

Love discovering amazing projects?

Help us continue bringing you the best open-source discoveries every week.

Back to Projects
Last updated: May 15, 2026