Skip to content

Commit 065d4c6

Browse files
xrmxestolfocolleenmcginnis
authored
docs: add docs with differences from the APM Python agent (#206)
* docs: add docs with differences from the APM Python agent --------- Co-authored-by: Emily S <[email protected]> Co-authored-by: Colleen McGinnis <[email protected]>
1 parent 0bbdf65 commit 065d4c6

File tree

2 files changed

+70
-0
lines changed

2 files changed

+70
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ With EDOT Python you have access to all the features of the OpenTelemetry Python
2222
* [Get started](./docs/get-started.md)
2323
* [Manual instrumentation](./docs/manual-instrumentation.md)
2424
* [Configuration](./docs/configure.md)
25+
* [Migrating from Elastic APM Python Agent](./docs/migrate-from-apm.md)
2526

2627
## Install
2728

docs/migrate-from-apm.md

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
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+
# Compare EDOT Python and the Elastic APM Python agent
7+
8+
This guide will highlight the major differences between the [Elastic APM Python agent](https://www.elastic.co/guide/en/apm/agent/python/current/getting-started.html) and the Elastic Distribution of OpenTelemetry Python (EDOT Python).
9+
For step-by-step instructions on setting up EDOT Python refer to the [Get started guide](./get-started.md).
10+
11+
## We are a distribution
12+
13+
As a distribution of OpenTelemetry, EDOT Python follows certain standards, but there is still some space for innovation.
14+
15+
## Bold on autoinstrumentation
16+
17+
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](https://github.com/elastic/elastic-otel-python?tab=readme-ov-file#configuration).
18+
19+
## Bring your own instrumentation
20+
21+
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.
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 and Dynamic configuration
27+
28+
Currently EDOT Python does not have an equivalent of the [central configuration feature](https://www.elastic.co/guide/en/observability/current/apm-agent-configuration.html) 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.
29+
30+
### AWS lambda
31+
32+
At the moment, we are not building a custom lambda layer for our Python distribution. 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 instrumentations we have in Elastic APM Python Agent have an OpenTelemetry counterpart. But we may port them if they are requested by users.
37+
38+
At the time of writing these docs, 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
50+
- zlib
51+
52+
### Integration with structured logging
53+
54+
EDOT Python does not have any [structlog integration](https://www.elastic.co/guide/en/apm/agent/python/current/logs.html#structlog) at the moment.
55+
56+
### Span compression
57+
58+
EDOT Python does not implement [span compression](https://www.elastic.co/guide/en/observability/current/apm-data-model-spans.html#apm-spans-span-compression).
59+
60+
### Breakdown metrics
61+
62+
EDOT Python is not sending metrics that power the [Breakdown metrics](https://www.elastic.co/guide/en/apm/guide/current/data-model-metrics.html#_breakdown_metrics).
63+
64+
<!-- ✅ What they should do next -->
65+
## Next steps
66+
67+
* [Get started](./get-started.md) with EDOT Python.
68+
* Learn how to add [manual instrumentation](./manual-instrumentation.md).
69+
* Learn more about viewing and interpreting data in the [Observability guide](https://www.elastic.co/guide/en/observability/current/apm.html).

0 commit comments

Comments
 (0)