Native Instrumentation is currently the default setting of Odigos Open-Source version.eBPF-Based Instrumentation is currently not supported for this language.
Supported Versions
Odigos uses the official opentelemetry-python-instrumentation OpenTelemetry Auto Instrumentation, thus it supports the same Python versions as this project.- In the enterprise version, Odigos leverages eBPF to enhance performance in the Python instrumentation process.
- Odigos ships two separate Python distros — one for Python 3.8 and one for Python 3.9 and above. Odigos selects the correct distro automatically based on the runtime version of your workload.
-
Python 3.8 uses a dedicated legacy distro with OpenTelemetry instrumentation
0.54b1. - Python 3.9 through 3.14 uses the main distro with the latest OpenTelemetry instrumentation.
Traces
Odigos will automatically instrument your Python services to record and collect spans for distributed tracing, by utilizing the OpenTelemetry Python official auto Instrumentation Libraries.Instrumentation Libraries
The following Python modules will be auto instrumented by Odigos. Supported libraries differ between the Python 3.8 and Python 3.9+ distros:- Python 3.8
- Python 3.9+
The Python 3.8 distro includes the libraries below. It does not include Gen AI instrumentations other than OpenAI.
Database Clients, ORMs, and Data Access Libraries
aiopgversionsaiopg >= 0.13.0, < 2.0.0dbapimysqlversionmysql-connector-python >= 8.0, < 10.0mysqlclientversionmysqlclient < 3psycopgversionspsycopg >= 3.1.0psycopg2versionspsycopg2 >= 2.7.3.1,psycopg2-binary >= 2.7.3.1pymemcacheversionspymemcache >= 1.3.5, < 5pymssqlversionspymssql >= 2.1.5, < 3pymongoversionspymongo >= 3.1, < 5.0pymysqlversionsPyMySQL < 2redisversionsredis >= 2.6sqlalchemyversionssqlalchemy >= 1.0.0, < 2.1.0sqlite3tortoiseormversionstortoise-orm >= 0.17.0cassandraversionscassandra-driver ~= 3.25,scylla-driver ~= 3.25elasticsearchversionselasticsearch >= 6.0asyncpgversionsasyncpg >= 0.12.0
HTTP Frameworks
asgiversionsasgiref ~= 3.0djangoversionsdjango >= 1.10Please note that for Django instrumentation to work, you need to set the DJANGO_SETTINGS_MODULE environment variable. Make sure to set this in your Kubernetes manifest or Dockerfile to ensure proper configuration.fastapiversionsfastapi ~= 0.58flaskversionsflask >= 1.0pyramidversionspyramid >= 1.7starletteversionsstarlette >= 0.13, < 0.15falconversionsfalcon >= 1.4.1, < 5.0.0tornadoversionstornado >= 5.1.1
HTTP Clients
aiohttp-clientversionsaiohttp ~= 3.0httpxversionshttpx >= 0.18.0requestsversionsrequests ~= 2.0urlliburllib3versionsurllib3 >= 1.0.0, < 3.0.0
Messaging Systems Clients
aio-pikaversionsaio_pika >= 7.2.0, < 10.0.0celeryversionscelery >= 4.0, < 6.0confluent-kafkaversionsconfluent-kafka >= 1.8.2, <= 2.7.0kafka-pythonversionskafka-python >= 2.0, < 3.0,kafka-python-ng >= 2.0, < 3.0pikaversionspika >= 0.12.0remouladeversionsremoulade >= 0.50
RPC (Remote Procedure Call)
grpcversionsgrpcio >= 1.42.0
Web Servers
aiohttp-serverversionsaiohttp ~= 3.0wsgi
Cloud Services and SDKs
Framework and Library Utilities
jinja2versionsjinja2 >= 2.7, < 4.0
Other
Gen AI
openaiversionsopenai >= 1.26.0