name: observability-edot-python-instrument description: > Instrument a Python application with the Elastic Distribution of OpenTelemetry (EDOT) Python agent for automatic tracing, metrics, and logs. Use when adding observability to a Python service that has no existing APM agent. metadata: author: elastic version: 0.1.0
EDOT Python Instrumentation
Read the setup guide before making changes:
Guidelines
- Install
elastic-opentelemetryvia pip (add torequirements.txtor equivalent) - Run
edot-bootstrap --action=installduring image build to install auto-instrumentation packages for detected libraries - Wrap the application entrypoint with
opentelemetry-instrument— e.g.opentelemetry-instrument gunicorn app:apporopentelemetry-instrument python app.py. Without this, no telemetry is collected - Set exactly three required environment variables:
OTEL_SERVICE_NAMEOTEL_EXPORTER_OTLP_ENDPOINT— must be the managed OTLP endpoint or EDOT Collector URL. Never use an APM Server URL (noapm-server, no:8200, no/intake/v2/events)OTEL_EXPORTER_OTLP_HEADERS—"Authorization=ApiKey <key>"or"Authorization=Bearer <token>"
- Do NOT set
OTEL_TRACES_EXPORTER,OTEL_METRICS_EXPORTER, orOTEL_LOGS_EXPORTER— the defaults are already correct - Do NOT add code-level SDK setup (no
TracerProvider, noconfigure_azure_monitor, etc.) —opentelemetry-instrumenthandles everything - Never run both classic
elastic-apmand EDOT on the same application
Examples
See the EDOT Python setup guide for complete examples.
Related skills
Docker Compose Architect
DevOps
Designs optimized Docker Compose configurations.
Claude CodeCopilotadvanced
430
156
1,663
Incident Postmortem Writer
DevOps
Writes structured and blameless incident postmortem reports.
claudeCursorWindsurfintermediate
141
43
580
Runbook Creator
DevOps
Creates clear operational runbooks for common DevOps procedures.
claudeCursorWindsurfintermediate
108
32
512