Python
Python Automatic Instrumentation
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.
-
Python runtime versions 3.8 and above are supported.
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:
Database Clients, ORMs, and Data Access Libraries
aiopg
versionsaiopg >= 0.13.0, < 2.0.0
dbapi
mysql
versionmysql-connector-python >= 8.0.0, < 9.0.0
mysqlclient
versionmysqlclient < 3.0.0
psycopg
versionspsycopg >= 3.1.0
psycopg2
versionspsycopg2 >= 2.7.3.1
pymemcache
versionspymemcache >= 1.3.5, < 5.0.0
pymongo
versionspymongo >= 3.1, < 5.0.0
pymysql
versionspymysql < 2.0.0
redis
versionsredis >= 2.6
sqlalchemy
sqlite3
tortoiseorm
versionstortoise-orm >= 0.17.0
,pydantic >= 1.10.2
cassandra
versionscassandra-driver >= 3.25.0, < 4.0.0
,scylla-driver >= 3.25.0, < 4.0.0
elasticsearch
versionselasticsearch >= 6.0.0
asyncpg
versionsasyncpg >= 0.12.0
HTTP Frameworks
asgi
versionsasgiref >= 3.0.0, < 4.0.0
django
versionsdjango >= 1.10.0
Please 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.fastapi
versionsfastapi >= 0.58.0, < 0.59.0
,fastapi-slim >= 0.111.0, < 0.112.0
flask
versionsflask >= 1.0.0
pyramid
versionspyramid >= 1.7.0
starlette
versionsstarlette >= 0.13.0, < 0.14.0
falcon
versionsfalcon >= 1.4.1, < 3.1.2
tornado
versionstornado >= 5.1.1
HTTP Clients
aiohttp-client
versionsaiohttp >= 3.0.0, < 4.0.0
httpx
versionshttpx >= 0.18.0
requests
versionsrequests >= 2.0.0, < 3.0.0
urllib
urllib3
versionsurllib3 >= 1.0.0, < 3.0.0
Messaging Systems Clients
aio-pika
versionsaio_pika >= 7.2.0, < 10.0.0
celery
versionscelery >= 4.0.0, < 6.0.0
confluent-kafka
versionsconfluent-kafka >= 1.8.2, <= 2.4.0
kafka-python
versionskafka-python >= 2.0.0
pika
versionspika >= 0.12.0
remoulade
versionsremoulade >= 0.50.0
RPC (Remote Procedure Call)
grpc
versionsgrpcio >= 1.27.0, < 2.0.0
Web Servers
aiohttp-server
versionsaiohttp >= 3.0.0, < 4.0.0
wsgi
Cloud Services and SDKs
boto
versionsboto >= 2.0.0, < 3.0.0
boto3sqs
versionsboto3 >= 1.0.0, < 2.0.0
botocore
versionsbotocore >= 1.0.0, < 2.0.0
Framework and Library Utilities
jinja2
versionsjinja2 >= 2.7, < 4.0
Other
Loggers
Automatic injection of trace context (trace id and span id) into log records for the following loggers: