The OpenTelemetry project facilitates the collection of telemetry data via the OpenTelemetry Collector. The OpenTelemetry Collector offers a vendor-agnostic implementation on how to receive, process, and export telemetry data. It removes the need to run, operate, and maintain multiple agents/collectors in order to support open-source observability data formats (e.g. Jaeger, Prometheus, etc.) sending to one or more open-source or commercial back-ends. In addition, the Collector gives end-users control of their data. The Collector is the default location instrumentation libraries export their telemetry data.
The Collector may be offered as a distribution, see here for more information.
The OpenTelemetry Collector provides a single binary and two deployment methods:
- Agent: A Collector instance running with the application or on the same host as the application (e.g. binary, sidecar, or daemonset).
- Gateway: One or more Collector instances running as a standalone service (e.g. container or deployment) typically per cluster, data center or region.
For information on how to use the Collector see the getting started documentation.
The Collector is made up of the following components:
receivers: How to get data into the Collector; these can be push or pull based
processors: What to do with received data
exporters: Where to send received data; these can be push or pull based
These components are enabled through
pipelines. Multiple instances of
components as well as pipelines can be defined via YAML configuration.
For more information about these components see the configuration documentation.
The OpenTelemetry project provides two versions of the Collector:
- Core: Foundational components such as configuration and generally applicable receivers, processors, exporters, and extensions.
- Contrib: All the components of core plus optional or possibly experimental components. Offers support for popular open-source projects including Jaeger, Prometheus, and Fluent Bit. Also contains more specialized or vendor-specific receivers, processors, exporters, and extensions.