Native Instrumentation is currently the default setting of Odigos Open-Source version.
eBPF-Based Instrumentation is currently not supported for this language.
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.
Odigos will automatically instrument your Python services to record and collect spans for distributed tracing, by utilizing the OpenTelemetry Python official auto Instrumentation Libraries.
The following Python modules will be auto instrumented by Odigos:
aiopg
versions aiopg >= 0.13.0, < 2.0.0
dbapi
mysql
version mysql-connector-python >= 8.0.0, < 9.0.0
mysqlclient
version mysqlclient < 3.0.0
psycopg
versions psycopg >= 3.1.0
psycopg2
versions psycopg2 >= 2.7.3.1
pymemcache
versions pymemcache >= 1.3.5, < 5.0.0
pymssql
versions pymssql >= 2.1.5, < 3
pymongo
versions pymongo >= 3.1, < 5.0.0
pymysql
versions pymysql < 2.0.0
redis
versions redis >= 2.6
sqlalchemy
sqlite3
tortoiseorm
versions tortoise-orm >= 0.17.0
, pydantic >= 1.10.2
cassandra
versions cassandra-driver >= 3.25.0, < 4.0.0
, scylla-driver >= 3.25.0, < 4.0.0
elasticsearch
versions elasticsearch >= 6.0.0
asyncpg
versions asyncpg >= 0.12.0
asgi
versions asgiref >= 3.0.0, < 4.0.0
django
versions django >= 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
versions fastapi >= 0.58.0, < 0.59.0
, fastapi-slim >= 0.111.0, < 0.112.0
flask
versions flask >= 1.0.0
pyramid
versions pyramid >= 1.7.0
starlette
versions starlette >= 0.13.0, < 0.14.0
falcon
versions falcon >= 1.4.1, < 3.1.2
tornado
versions tornado >= 5.1.1
aiohttp-client
versions aiohttp >= 3.0.0, < 4.0.0
httpx
versions httpx >= 0.18.0
requests
versions requests >= 2.0.0, < 3.0.0
urllib
urllib3
versions urllib3 >= 1.0.0, < 3.0.0
aio-pika
versions aio_pika >= 7.2.0, < 10.0.0
celery
versions celery >= 4.0.0, < 6.0.0
confluent-kafka
versions confluent-kafka >= 1.8.2, <= 2.4.0
kafka-python
versions kafka-python >= 2.0.0
pika
versions pika >= 0.12.0
remoulade
versions remoulade >= 0.50.0
grpc
versions grpcio >= 1.27.0, < 2.0.0
aiohttp-server
versions aiohttp >= 3.0.0, < 4.0.0
wsgi
boto
versions boto >= 2.0.0, < 3.0.0
boto3sqs
versions boto3 >= 1.0.0, < 2.0.0
botocore
versions botocore >= 1.0.0, < 2.0.0
jinja2
versions jinja2 >= 2.7, < 4.0
Automatic injection of trace context (trace id and span id) into log records for the following loggers: