|
| 1 | +<!-- |
| 2 | +Goal of this doc: |
| 3 | +The user is able to understand the differences between the APM Python agent and EDOT |
| 4 | +--> |
| 5 | + |
| 6 | +# Get started |
| 7 | + |
| 8 | +This guide will highlight the major differences between APM Python Agent and the Elastic Distribution of OpenTelemetry Python (EDOT Python). |
| 9 | +For an hands-on approach on setting up EDOT Python refer to the [Get started guide](./get-started.md). |
| 10 | + |
| 11 | +## We are a distribution |
| 12 | + |
| 13 | +EDOT Python being a distribution of OpenTelemetry means we should follow standards and can't always drift from that. That does not mean there isn't still space for innovation. |
| 14 | + |
| 15 | +## Bold on autoinstrumentation |
| 16 | + |
| 17 | +We have choosen to be bold on autoinstrumentation - that is instrument your Python application without change the application code - so you can just focus on your code. This is because OpenTelemetry configuration has more options and configuration knobs that may complicate things. |
| 18 | + |
| 19 | +## Bring your own instrumentation |
| 20 | + |
| 21 | +In EDOT Python we decided to not ship all the available instrumentations in order to accomodate environments where installing more packages than requested may be an issue. |
| 22 | +We provide a tool to discover available instrumentations automatically that can be added to your build workflow. See [Get started](https://github.com/elastic/elastic-otel-python/blob/main/docs/get-started.md#install-the-available-instrumentation). |
| 23 | + |
| 24 | +## Limitations |
| 25 | + |
| 26 | +### Central configuration |
| 27 | + |
| 28 | +At the moment we don't have a Central configuration replacement so all the configurations would be static and should be provided to the application with other manners. |
| 29 | + |
| 30 | +### AWS lambda |
| 31 | + |
| 32 | +At the moment we are not building any custom lambda layer for the Python instrumentation. You can refer to the upstream [Lambda Auto-Instrumentation](https://opentelemetry.io/docs/faas/lambda-auto-instrument/). |
| 33 | + |
| 34 | +### Missing instrumentations |
| 35 | + |
| 36 | +Not all instrumentation we have in APM Python Agent have an OpenTelemetry counterpart, we may port them if there is customer request. |
| 37 | + |
| 38 | +At the moment of writing the following libraries are missing an OpenTelemetry instrumentation: |
| 39 | +- aiobotocore |
| 40 | +- aiomysql |
| 41 | +- aiopg |
| 42 | +- aioredis |
| 43 | +- Azure storage and Azure queue |
| 44 | +- Graphene |
| 45 | +- httplib2 |
| 46 | +- pylibmc |
| 47 | +- pyodbc |
| 48 | +- pymssql |
| 49 | +- Sanic, though it may be compatible with the ASGI instrumentation |
| 50 | +- zlib |
| 51 | + |
| 52 | +<!-- ✅ What they should do next --> |
| 53 | +## Next steps |
| 54 | + |
| 55 | +* [Get started](./get-started.md) with EDOT Python. |
| 56 | +* Learn how to add [manual instrumentation](./manual-instrumentation.md). |
| 57 | +* Learn more about viewing and interpreting data in the [Observability guide](https://www.elastic.co/guide/en/observability/current/apm.html). |
0 commit comments