Collector

Vendor-agnostic way to receive, process and export telemetry data.
OpenTelemetry Collector diagram with Jaeger, OTLP and Prometheus integration

Introduction

The OpenTelemetry Collector offers a vendor-agnostic implementation of how to receive, process and export telemetry data. It removes the need to run, operate, and maintain multiple agents/collectors. This works with improved scalability and supports open source observability data formats (e.g. Jaeger, Prometheus, Fluent Bit, etc.) sending to one or more open source or commercial backends. The local Collector agent is the default location to which instrumentation libraries export their telemetry data.

Objectives

  • Usability: Reasonable default configuration, supports popular protocols, runs and collects out of the box.
  • Performance: Highly stable and performant under varying loads and configurations.
  • Observability: An exemplar of an observable service.
  • Extensibility: Customizable without touching the core code.
  • Unification: Single codebase, deployable as an agent or collector with support for traces, metrics, and logs (future).

When to use a collector

For most language specific instrumentation libraries you have exporters for popular backends and OTLP. You might wonder,

under what circumstances does one use a collector to send data, as opposed to having each service send directly to the backend?

For trying out and getting started with OpenTelemetry, sending your data directly to a backend is a great way to get value quickly. Also, in a development or small-scale environment you can get decent results without a collector.

However, in general we recommend using a collector alongside your service, since it allows your service to offload data quickly and the collector can take care of additional handling like retries, batching, encryption or even sensitive data filtering.

It is also easier to setup a collector than you might think: the default OTLP exporters in each language assume a local collector endpoint, so if you launch a collector it will automatically start receiving telemetry.

Status and releases

The collector status is: mixed, since core collector components currently have mixed stability levels.

Collector components differ in their maturity levels. Each component has its stability documented in its README.md. You can find a list of all available collector components in the registry.

For releases, including the latest release, see Releases.


Quick start

Setup and collect telemetry in minutes!

Install the Collector

Deployment

Patterns you can apply to deploy the OpenTelemetry collector

Configuration

Learn how to configure the Collector to suit your needs

Management

How to manage your OpenTelemetry collector deployment at scale

Distributions

Troubleshooting

Recommendations for troubleshooting the collector

Scaling the Collector

Transforming telemetry

Architecture

Building a custom collector

Building custom components

Instructions on how to build your own collector components

Benchmarks

Registry

Exporters, processors, receivers and other useful components for the OpenTelemetry Collector