Configure Jaegeredit

This documentation refers to configuring the standalone (legacy) APM Server. This method of running APM Server will be deprecated and removed in a future release. Please consider upgrading to Fleet and the APM integration. If you’ve already upgraded, please see Integrate with Jaeger instead.

Elastic APM integrates with Jaeger, an open-source, distributed tracing system. This integration allows users with an existing Jaeger setup to switch from the default Jaeger backend, to the Elastic Stack — transform data with APM Server, store data in Elasticsearch, and visualize traces in the Kibana APM app. Best of all, no instrumentation changes are needed in your application code.

Ready to get started? See the How to integrate with Jaeger guide.

Supported architectureedit

Jaeger architecture supports different data formats and transport protocols that define how data can be sent to a collector. Elastic APM, as a Jaeger collector, supports communication with Jaeger agents via gRPC.

  • APM Server serves Jaeger gRPC over the same host and port as the Elastic APM agent protocol.
  • The APM Server gRPC endpoint supports TLS. If apm-server.ssl is configured, SSL settings will automatically be applied to APM Server’s Jaeger gRPC endpoint.
  • The gRPC endpoint supports probabilistic sampling. Sampling decisions can be configured centrally with APM Agent central configuration, or locally in each Jaeger client.

See the Jaeger docs for more information on Jaeger architecture.

Caveatsedit

There are some limitations and differences between Elastic APM and Jaeger that you should be aware of.

Jaeger integration limitations:

  • Because Jaeger has its own trace context header, and does not currently support W3C trace context headers, it is not possible to mix and match the use of Elastic’s APM agents and Jaeger’s clients.
  • Elastic APM only supports probabilistic sampling.

Differences between APM Agents and Jaeger Clients:

  • Jaeger clients only sends trace data. APM agents support a larger number of features, like multiple types of metrics, and application breakdown charts. When using Jaeger, features like this will not be available in the APM app.
  • Elastic APM’s data model is different than Jaegers. For Jaeger trace data to work with Elastic’s data model, we rely on spans being tagged with the appropriate span.kind.

    • Server Jaeger spans are mapped to Elastic APM transactions.
    • Client Jaeger spans are mapped to Elastic APM spans — unless the span is the root, in which case it is mapped to an Elastic APM transaction.