DEV.co
Open-Source Observability · open-telemetry

opentelemetry-python

OpenTelemetry Python is the official reference implementation of the OpenTelemetry API and SDK for Python, providing libraries for collecting traces, metrics, and logs from applications. It enables teams to instrument Python code and export observability data to various backends without vendor lock-in.

Source: GitHub — github.com/open-telemetry/opentelemetry-python
2.5k
GitHub stars
931
Forks
Python
Primary language
Apache-2.0
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositoryopen-telemetry/opentelemetry-python
Owneropen-telemetry
Primary languagePython
LicenseApache-2.0 — OSI-approved
Stars2.5k
Forks931
Open issues419
Latest releasev1.43.0 (2026-06-24)
Last updated2026-07-06
Sourcehttps://github.com/open-telemetry/opentelemetry-python

What opentelemetry-python is

The project consists of modular packages (opentelemetry-api, opentelemetry-sdk) following the OpenTelemetry specification, with separate exporter and propagator packages for integration with different backends. Traces and Metrics are stable; Logs are in development with planned breaking changes. Minimum Python 3.10+, actively maintained with weekly community meetings.

Quickstart

Get the opentelemetry-python source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/open-telemetry/opentelemetry-python.gitcd opentelemetry-python# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Distributed Tracing Across Microservices

Instrument Python services to emit and correlate traces across service boundaries using trace context propagation, enabling end-to-end request visibility in microservice architectures.

Vendor-Agnostic Observability

Write telemetry collection code once and export to multiple backends (Jaeger, Zipkin, Honeycomb, Datadog, etc.) by swapping exporters, avoiding vendor lock-in and reducing instrumentation debt.

Metrics Collection and Correlation

Collect application and business metrics alongside traces and logs in a unified framework, enabling correlation of performance anomalies with business events and system behavior.

Implementation considerations

  • Separate library dependencies (opentelemetry-api) from SDK (opentelemetry-sdk); libraries should depend only on API to defer SDK choice to applications, reducing transitive bloat.
  • Logs signal will introduce breaking changes during stabilization; pin major versions and monitor release notes if using experimental log instrumentation.
  • Manual instrumentation requires explicit span/metric creation; auto-instrumentation for popular frameworks is available in opentelemetry-python-contrib, not in this core repo.
  • Context propagation and trace correlation require configuration of appropriate propagators (W3C Trace Context, Jaeger, etc.); default propagator choice affects distributed tracing correctness.
  • Exporter selection and configuration (batch vs. on-demand, endpoint, authentication) must align with backend availability and network topology; test exporter reliability in your environment.

When to avoid it — and what to weigh

  • Logs Signal Production Dependencies — If your application requires production-grade log collection today, defer adoption. Logs signal is marked 'Development' with breaking changes planned; use stable Traces and Metrics only.
  • Python < 3.10 Environments — Project requires Python 3.10+. Older Python versions are unsupported within 6 months of their end-of-life; legacy applications on Python 3.8–3.9 cannot use current releases.
  • Minimal Dependencies / Constraint-Heavy Environments — OpenTelemetry introduces additional runtime dependencies and initialization overhead. Highly resource-constrained environments (embedded, serverless with tight memory limits) may need careful profiling.
  • Proprietary / Non-Standard Observability Workflows — OpenTelemetry is standards-based and compatible with standard backends. Highly customized in-house telemetry pipelines may require significant adapter work or may not benefit from the ecosystem.

License & commercial use

Licensed under Apache License 2.0 (Apache-2.0), a permissive open-source license that permits commercial use, modification, and distribution with attribution and liability disclaimers.

Apache-2.0 explicitly permits commercial use, derivative works, and proprietary integration. No copyleft restrictions. Suitable for commercial products and closed-source applications. However, consult your legal team for indemnification and warranty implications in high-risk deployments.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationStrong
License clarityClear
Deployment complexityModerate
DEV.co fitStrong
Assessment confidenceHigh
Security considerations

No security vulnerabilities disclosed in the provided data. Project holds OpenSSF Best Practices badge, suggesting security process maturity. Considerations: (1) Exporter endpoints must be secured (TLS, authentication); misconfiguration could expose telemetry in transit. (2) Instrumentation may emit sensitive data (PII, tokens) in trace/metric tags; require data sanitization policies in instrumentation code. (3) Python version support aligns with security patch cycles; applications on unsupported versions face known vulnerabilities. (4) Dependencies are modular; audit exporter and propagator transitive dependencies for supply-chain risk.

Alternatives to consider

Datadog APM SDK (dd-trace-py)

Vendor-specific but tightly integrated with Datadog platform; simpler setup if already committed to Datadog, but locks you into that backend and pricing model.

Elastic APM Agent for Python

Tailored to Elastic Stack; strong Elasticsearch integration and Kibana visualization, but requires commitment to Elastic ecosystem and offers less flexibility for multi-vendor setups.

Jaeger Python Client (jaeger-client)

Lightweight, Jaeger-specific; good for organizations standardized on Jaeger, but lacks the multi-signal (metrics, logs) and multi-backend flexibility of OpenTelemetry.

Software development agency

Build on opentelemetry-python with DEV.co software developers

Ready to adopt vendor-neutral instrumentation? Review the getting-started guide, assess exporter compatibility with your backend, and pilot with a non-critical service to validate integration and performance impact.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

opentelemetry-python FAQ

Do I have to use the opentelemetry-sdk, or can I use a third-party SDK?
Libraries should depend only on opentelemetry-api; applications choose the SDK. You can use opentelemetry-sdk (reference implementation) or another SDK that implements the API. This allows flexibility.
Is the Logs signal production-ready?
No. Logs are marked 'Development' and will undergo breaking changes during stabilization. Traces and Metrics are Stable. Avoid production dependencies on Logs; monitor release notes for migration guidance.
What Python versions are supported?
Python 3.10+. Support for new versions is added within 3 months of release; support for old versions is removed 6 months after their end-of-life, aligning with Python's official support cycles.
Does OpenTelemetry automatically instrument my code?
The core repo provides API/SDK for manual instrumentation. Auto-instrumentation for popular frameworks (Django, FastAPI, requests, etc.) is available in the separate opentelemetry-python-contrib repository.

Work with a software development agency

DEV.co helps companies turn open-source tools like opentelemetry-python into production software. Our software development services cover the full lifecycle — architecture, web development, integration, and maintenance — delivered by software developers and web developers who ship. Engage our software development agency to implement or customize it for your open-source observability stack.

Evaluate OpenTelemetry Python for Your Observability Stack

Ready to adopt vendor-neutral instrumentation? Review the getting-started guide, assess exporter compatibility with your backend, and pilot with a non-critical service to validate integration and performance impact.