Technologies Supported by the EDOT Python SDK

EDOT Collector / Elastic Stack versions

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

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

See EDOT SDKs compatibility for support details.

Python versions

The following Python versions are supported:

  • 3.8
  • 3.9
  • 3.10
  • 3.11
  • 3.12
  • 3.13

This follows the OpenTelemetry Python Version Support.

Instrumentations

We don’t install instrumentations by default and we suggest to use our edot-bootstrap command to automatically install the available instrumentations.

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

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

Native Elasticsearch instrumentation

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

The elasticsearch package got native OpenTelemetry support since version 8.13.

LLM instrumentations

We 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 1.
AWS SDK for Python (Boto3) opentelemetry-instrumentation-botocore 2.
Google Cloud AI Platform opentelemetry-instrumentation-vertexai 🚧 3.
  1. Support for sync and async chat completions create API and embeddings API.
  2. Support for Bedrock Runtime InvokeModel, InvokeModelWithResponseStream, Converse and ConverseStream APIs. A subset of models are traced in InvokeModel and InvokeModelWithStreaming API, see botocore instrumentation.
  3. Instrumentation supports tracing and sending events for synchronous API calls, and currently doesn’t support async APIs and streaming calls yet.

Configuration

These instrumentations implement the following configuration options:

Option default description
OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT false If set to true, enables the capturing of request and response content in the log events outputted by the agent.