The Collector is a network service application that you can use to batch and transform telemetry data. It acts as a proxy and can receive OTLP requests as well as data from other sources, transform these requests according to defined rules, and forward them to the backend.
In general, using the Collector alongside your service can be an advantage, since it allows your service to offload data quickly and takes care of additional handling such as retries, batching, encryption, or sensitive data filtering. It centralizes common processing tasks instead of duplicating them in each application.
You should use the Collector if:
The Collector is a relatively lightweight component, so teams can deploy their own to avoid sharing the same configuration.
The Collector is configured in a single YAML file. This eliminates the need to browse through multiple files and reduces maintenance. You can find more information on the configuration at Collector Configuration.
The Collector comes in different distribution flavors and with different setup and deployment options.
The Dynatrace distribution of the OpenTelemetry Collector is a customized Collector build provided by Dynatrace and tailored for typical use cases in a Dynatrace context. It ships with an optimized and verified set of Collector components.
The Dynatrace Collector offers the following advantages compared to the OpenTelemetry Collector distributions:
You can download the latest Dynatrace Collector release from https://github.com/Dynatrace/dynatrace-otel-collector/releases/latest.
It is also available as a Docker image at Github Packages and can be pulled using the following command:
docker pull ghcr.io/dynatrace/dynatrace-otel-collector/dynatrace-otel-collector:[VERSION]
By default, the Dynatrace Collector ships with the following Collector components.
Receivers | ||
Processors | ||
Extensions | |
Connectors | |
Take a look at Collector use cases for concrete use-case and configuration examples for the individual components.
There are two principal OpenTelemetry distributions of the Collector:
Additionally, OpenTelemetry also provides the Collector Builder, which allows you to build your own, customized Collector binary.
Dynatrace only provides limited support for Core, Contrib, and Builder setups, covering only the components and their versions included in the Dynatrace Collector.
For a fully supported Collector distribution, see Dynatrace Collector.
The Core distribution contains the basic proxy service and a few fundamental service components:
The Contrib distribution builds on top of Core and enhances its functionality by shipping with a large number of additional receivers, processors, and exporters, contributed by third parties.
Given that the Contrib distribution is an all-in-one package and comes with all service components pre-compiled, it may use more system resources (storage and memory) than an optimized Collector build. Generally, we recommend using the Contrib distribution for testing purposes and a custom build of the Collector (see Builder) in production.
In addition to the two distributions, OpenTelemetry also offers the Collector Builder, a command line tool that allows you to build your own customized version of the Collector.
A receiver is a component that enables data to come into the Collector. It can receive data from multiple sources. Many receivers come with default settings and do not need much configuration.
For a list of available receivers and their basic configuration, see the official OpenTelemetry documentation on receivers.
A processor is an optional component that decides what to do with the data.
For a list of available processors and their basic configuration, see the official OpenTelemetry documentation on processors. OpenTelemetry has a list of recommended processors, but these are optional.
An exporter is a component that sends processed data to one or more backends. Exporters can support more than one data source.
Because many exporters require additional configuration (for example, an endpoint), be sure to check the official OpenTelemetry documentation on exporters for a list of available exporters and their configurations.
Services are used to define pipelines that channel data through the Collector. They define which components work together to process OpenTelemetry data.