OpenTelemetry integration
editOpenTelemetry integration
editElastic’s OpenTelemetry integration allows you to reuse your existing OpenTelemetry instrumentation to quickly analyze distributed traces and metrics with the Elastic Stack.
What is OpenTelemetry?
editOpenTelemetry is a set of APIs, SDKs, tooling, and integrations that enable the creation and management of telemetry data. It formed through a merger of the OpenTracing and OpenCensus projects.
OpenTelemetry is an open-source project that provides the components necessary to observe your applications and services. If you’re unfamiliar with the project, see the spec for more information.
Elastic exporter
editElastic’s integration is designed to drop into your current OpenTelemetry setup. We’ve done this by extending the "contrib" OpenTelemetry collector and adding an Elastic exporter. This exporter translates the OpenTelemetry trace data collected from your services to Elastic’s protocol, before sending the data to the Elastic Stack. By extending the OpenTelemetry collector, no changes are needed in your instrumented services in order to begin using the Elastic Stack.
How the OpenTelemetry Collector works
editThe OpenTelemetry collector uses three different types of components to handle data: receivers
, processors
, and exporters
.
-
receivers
: Configure how data gets to the collector. At least one receiver must be configured. -
processors
: Defines optional transformations that occurs between receiving and exporting data. -
exporters
: Configures how data is sent to its destination—in this case, the Elastic Stack.
Once a receiver
, processor
, and exporter
is defined, pipelines
can be configured in the services
section of your configuration. Specifically, a traces
pipeline will define the path of trace data through your collector, and bring all three of these components together.
More information is available in the OpenTelemetry pipeline docs
A final note: extensions
can also be enabled for tasks like monitoring your collectors health.
See the OpenTelemetry extension readme
for a list of supported extensions.