Loading

Technologies supported by EDOT Python

EDOT Python is a distribution of OpenTelemetry Python. It inherits all the supported technologies of the OpenTelemetry Python.

Note

Understanding auto-instrumentation scope

Auto-instrumentation automatically captures telemetry for the frameworks and libraries listed on this page. However, it cannot instrument:

  • Custom or proprietary frameworks and libraries
  • Closed-source components without instrumentation support
  • Application-specific business logic

If your application uses technologies not covered by auto-instrumentation, you have two options:

  1. Native OpenTelemetry support — Some frameworks and libraries include built-in OpenTelemetry instrumentation provided by the vendor.
  2. Manual instrumentation — Use the OpenTelemetry API to add custom spans, metrics, and logs for unsupported components.

EDOT Python sends data through the OpenTelemetry protocol (OTLP). While OTLP ingest works with later 8.16+ versions of the EDOT Collector, for full support use either EDOT Collector versions 9.x or Elastic Cloud Serverless for OTLP ingest.

Note

Ingesting data from EDOT SDKs through EDOT Collector 9.x into Elastic Stack versions 8.18+ is supported.

Refer to EDOT SDKs compatibility for support details.

The following Python versions are supported:

  • 3.9
  • 3.10
  • 3.11
  • 3.12
  • 3.13
  • 3.14

This follows the OpenTelemetry Python Version Support.

Instrumentations are not installed by default. Use the edot-bootstrap command to automatically install the available instrumentations.

Name Packages instrumented Semantic conventions status Tracer name
elastic-opentelemetry-instrumentation-openai openai >= 1.2.0 development opentelemetry.instrumentation.openai
opentelemetry-instrumentation-aio-pika aio_pika >= 7.2.0, < 10.0.0 development opentelemetry.instrumentation.aio_pika
opentelemetry-instrumentation-aiohttp-client aiohttp ~= 3.0 migration opentelemetry.instrumentation.aiohttp_client
opentelemetry-instrumentation-aiohttp-server aiohttp ~= 3.0 migration opentelemetry.instrumentation.aiohttp_server
opentelemetry-instrumentation-aiokafka aiokafka >= 0.8, < 1.0 development opentelemetry.instrumentation.aiokafka
opentelemetry-instrumentation-aiopg aiopg >= 0.13.0, < 2.0.0 development opentelemetry.instrumentation.aiopg
opentelemetry-instrumentation-asgi asgiref ~= 3.0 migration opentelemetry.instrumentation.asgi
opentelemetry-instrumentation-asyncclick asyncclick ~= 8.0 development opentelemetry.instrumentation.asyncclick
opentelemetry-instrumentation-asyncio asyncio development opentelemetry.instrumentation.asyncio
opentelemetry-instrumentation-asyncpg asyncpg >= 0.12.0 development opentelemetry.instrumentation.asyncpg
opentelemetry-instrumentation-aws-lambda development opentelemetry.instrumentation.aws_lambda
opentelemetry-instrumentation-boto boto~=2.0 development opentelemetry.instrumentation.boto
opentelemetry-instrumentation-boto3sqs boto3 ~= 1.0 development opentelemetry.instrumentation.boto3sqs
opentelemetry-instrumentation-botocore botocore ~= 1.0 development opentelemetry.instrumentation.botocore, opentelemetry.instrumentation.botocore.bedrock-runtime, opentelemetry.instrumentation.botocore.dynamodb, opentelemetry.instrumentation.botocore.lambda, opentelemetry.instrumentation.botocore.secreatsmanager, opentelemetry.instrumentation.botocore.stepfunctions, opentelemetry.instrumentation.botocore.sns, opentelemetry.instrumentation.botocore.sqs
opentelemetry-instrumentation-cassandra cassandra-driver ~= 3.25,scylla-driver ~= 3.25 development opentelemetry.instrumentation.cassandra
opentelemetry-instrumentation-celery celery >= 4.0, < 6.0 development opentelemetry.instrumentation.celery
opentelemetry-instrumentation-click click >= 8.1.3, < 9.0.0 development opentelemetry.instrumentation.click
opentelemetry-instrumentation-confluent-kafka confluent-kafka >= 1.8.2, <= 2.13.0 development opentelemetry.instrumentation.confluent_kafka
opentelemetry-instrumentation-dbapi dbapi development
opentelemetry-instrumentation-django django >= 1.10 development opentelemetry.instrumentation.django
opentelemetry-instrumentation-elasticsearch elasticsearch >= 6.0, < 8.13 development opentelemetry.instrumentation.elasticsearch
opentelemetry-instrumentation-falcon falcon >= 1.4.1, < 5.0.0 migration opentelemetry.instrumentation.falcon
opentelemetry-instrumentation-fastapi fastapi ~= 0.92 migration opentelemetry.instrumentation.fastapi
opentelemetry-instrumentation-flask flask >= 1.0 migration opentelemetry.instrumentation.flask
opentelemetry-instrumentation-grpc grpcio >= 1.42.0 development opentelemetry.instrumentation.grpc
opentelemetry-instrumentation-httpx httpx >= 0.18.0 migration opentelemetry.instrumentation.httpx
opentelemetry-instrumentation-jinja2 jinja2 >= 2.7, < 4.0 development opentelemetry.instrumentation.jinja2
opentelemetry-instrumentation-kafka-python kafka-python >= 2.0, < 3.0,kafka-python-ng >= 2.0, < 3.0 development opentelemetry.instrumentation.kafka
opentelemetry-instrumentation-logging logging development
opentelemetry-instrumentation-mysql mysql-connector-python >= 8.0, < 10.0 development opentelemetry.instrumentation.mysql
opentelemetry-instrumentation-mysqlclient mysqlclient < 3 development opentelemetry.instrumentation.mysqlclient
opentelemetry-instrumentation-pika pika >= 0.12.0 development opentelemetry.instrumentation.pika.pika_instrumentor
opentelemetry-instrumentation-psycopg psycopg >= 3.1.0 development opentelemetry.instrumentation.psycopg
opentelemetry-instrumentation-psycopg2 psycopg2 >= 2.7.3.1,psycopg2-binary >= 2.7.3.1 development opentelemetry.instrumentation.psycopg2
opentelemetry-instrumentation-pymemcache pymemcache >= 1.3.5, < 5 development opentelemetry.instrumentation.pymemcache
opentelemetry-instrumentation-pymongo pymongo >= 3.1, < 5.0 development opentelemetry.instrumentation.pymongo
opentelemetry-instrumentation-pymssql pymssql >= 2.1.5, < 3 development opentelemetry.instrumentation.pymssql
opentelemetry-instrumentation-pymysql PyMySQL < 2 development opentelemetry.instrumentation.pymsql
opentelemetry-instrumentation-pyramid pyramid >= 1.7 migration opentelemetry.instrumentation.pyramid.callbacks
opentelemetry-instrumentation-redis redis >= 2.6 development opentelemetry.instrumentation.redis
opentelemetry-instrumentation-remoulade remoulade >= 0.50 development opentelemetry.instrumentation.remoulade
opentelemetry-instrumentation-requests requests ~= 2.0 migration opentelemetry.instrumentation.requests
opentelemetry-instrumentation-sqlalchemy sqlalchemy >= 1.0.0, < 2.1.0 development opentelemetry.instrumentation.sqlalchemy
opentelemetry-instrumentation-sqlite3 sqlite3 development opentelemetry.instrumentation.sqlite3
opentelemetry-instrumentation-starlette starlette >= 0.13 development opentelemetry.instrumentation.starlette
opentelemetry-instrumentation-system-metrics psutil >= 5 development
opentelemetry-instrumentation-threading threading development
opentelemetry-instrumentation-tornado tornado >= 5.1.1 migration opentelemetry.instrumentation.tornado
opentelemetry-instrumentation-tortoiseorm tortoise-orm >= 0.17.0 development opentelemetry.instrumentation.tortoiseorm
opentelemetry-instrumentation-urllib urllib migration opentelemetry.instrumentation.urllib
opentelemetry-instrumentation-urllib3 urllib3 >= 1.0.0, < 3.0.0 migration opentelemetry.instrumentation.urllib3
opentelemetry-instrumentation-vertexai google-cloud-aiplatform >= 1.64 development opentelemetry.instrumentation.vertexai
opentelemetry-instrumentation-wsgi wsgi migration opentelemetry.instrumentation.wsgi

The semantic conventions status tracks the stabilization of the semantic conventions used in the instrumentation:

  • Stable means they are stable and are not expected to change.
  • Development means they are not stable yet and they may change in the future.
  • Migration means there may be configuration knobs to switch between different semantic conventions.

Some libraries like the Python Elasticsearch Client natively supports OpenTelemetry instrumentation.

The elasticsearch package has native OpenTelemetry support since version 8.13.

You can instrument the following LLM (Large Language Model) libraries with instrumentations implementing the OpenTelemetry GenAI Semantic Conventions:

SDK Instrumentation Traces Metrics Logs Notes
OpenAI elastic-opentelemetry-instrumentation-openai Supported Supported Supported Supports sync and async chat completions create API and embeddings API.
AWS SDK for Python (Boto3) opentelemetry-instrumentation-botocore Supported Supported Supported Supports Bedrock Runtime APIs like InvokeModel, InvokeModelWithResponseStream, Converse, and ConverseStream. A subset of models are traced in InvokeModel and InvokeModelWithStreaming API. See botocore instrumentation.
Google Cloud AI Platform opentelemetry-instrumentation-vertexai Supported Experimental Supported Instrumentation supports tracing and sending events for synchronous API calls. Currently, it doesn't support async APIs and streaming calls.