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.
As a distribution of OpenTelemetry, EDOT Python follows certain standards, but there is still some space for innovation.
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.
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.
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.
At the moment, we are not building a custom lambda layer for our Python distribution. You can refer to the upstream Lambda Auto-Instrumentation.
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
EDOT Python does not have any structlog integration at the moment.
EDOT Python does not implement span compression.
EDOT Python is not sending metrics that power the Breakdown metrics.
- Get started with EDOT Python.
- Learn how to add manual instrumentation.
- Learn more about viewing and interpreting data in the Observability guide.