Skip to content

Latest commit

 

History

History
69 lines (45 loc) · 3.43 KB

migrate-from-apm.md

File metadata and controls

69 lines (45 loc) · 3.43 KB

Compare EDOT Python and the Elastic APM Python agent

This guide will highlight the major differences between the Elastic APM Python agent and the Elastic Distribution of OpenTelemetry Python (EDOT Python). For step-by-step instructions on setting up EDOT Python refer to the Get started guide.

We are a distribution

As a distribution of OpenTelemetry, EDOT Python follows certain standards, but there is still some space for innovation.

Bold on autoinstrumentation

We have chosen to make autoinstrumentation as simple as possible so you can just focus on your code; we favored an experience that requires minimal changes to your application code. The upstream OpenTelemetry configuration has more options than the distribution requires. Our default configuration is listed here.

Bring your own instrumentation

In EDOT Python we decided to not ship all the available instrumentations in order to accommodate environments where installing more packages than requested may be an issue. We provide a tool to discover available instrumentations automatically that can be added to your build workflow. See Get started.

Limitations

Central and Dynamic configuration

Currently EDOT Python does not have an equivalent of the central configuration feature that the Elastic APM Python agent supports. When using EDOT Python, all the configurations are static and should be provided to the application with other configurations, e.g. environment variables.

AWS lambda

At the moment, we are not building a custom lambda layer for our Python distribution. You can refer to the upstream Lambda Auto-Instrumentation.

Missing instrumentations

Not all instrumentations we have in Elastic APM Python Agent have an OpenTelemetry counterpart. But we may port them if they are requested by users.

At the time of writing these docs, the following libraries are missing an OpenTelemetry instrumentation:

  • aiobotocore
  • aiomysql
  • aiopg
  • aioredis
  • Azure storage and Azure queue
  • Graphene
  • httplib2
  • pylibmc
  • pyodbc
  • pymssql
  • Sanic
  • zlib

Integration with structured logging

EDOT Python does not have any structlog integration at the moment.

Span compression

EDOT Python does not implement span compression.

Breakdown metrics

EDOT Python is not sending metrics that power the Breakdown metrics.

Next steps