On this page
Overview
OpenTelemetry Python is the Python API and SDK reference implementation for OpenTelemetry. It separates the library-facing API from the application-facing SDK and provides a common telemetry model for traces, metrics, and logs.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Separate the API used by libraries from the SDK chosen by applications
opentelemetry-api provides abstract APIs and no-op implementations for instrumentation libraries, while opentelemetry-sdk supplies TracerProvider, MeterProvider, LoggerProvider, and related reference implementations. Applications choose providers, processors, and exporters.
Connect traces, metrics, and logs to processors and exporters
Span processors and Console or OTLP exporters, metric readers, and log processors can route telemetry to local output or external backends. Version 1.45.0 adds capabilities including an OTLP JSON HTTP exporter and AlwaysRecordSampler.
Best fit
Fits Python services that want vendor-neutral observability instrumentation
It is useful when application and library instrumentation should stay independent of a specific backend and telemetry may flow through a Collector or multiple vendors. Framework auto-instrumentation is provided alongside the contrib repository.
Sources: [2]
Before adoption
OpenTelemetry Python 1.45.0 requires Python 3.10+; review signal stability separately
Version 1.45.0 requires Python 3.10 or newer. Traces and Metrics are Stable at the reviewed point, while Logs remains Development and may still require breaking changes on the path to stability. Pin and regression-test each signal independently during upgrades.
Official sources
- [1]open-telemetry/opentelemetry-python — GitHub repository(2026-10-06)
- [2]OpenTelemetry Python 1.45.0 — README(2026-10-06)
- [3]OpenTelemetry API 1.45.0 — pyproject.toml(2026-10-06)
- [4]OpenTelemetry SDK 1.45.0 — pyproject.toml(2026-10-06)
- [5]OpenTelemetry basic tracer example(2026-10-06)
- [6]OpenTelemetry Python 1.45.0 release(2026-10-06)
- [7]OpenTelemetry Python Apache-2.0 license(2026-10-06)
Supplemental curator note
The project is a strong foundation for vendor-neutral instrumentation. Keep libraries dependent on the API while applications select the SDK and exporters to preserve portability across collectors and backends.
Try it in 3 steps
- 1
Install OpenTelemetry API and SDK 1.45.0
Pin the reviewed API and SDK to the same release. Python 3.10 or newer is required.
python -m pip install "opentelemetry-api==1.45.0" "opentelemetry-sdk==1.45.0" - 2
Create a tracer with the console exporter
Follow the official basic tracer example by configuring a SpanProcessor and ConsoleSpanExporter.
cat > otel_demo.py <<'PY' from opentelemetry import trace from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import BatchSpanProcessor, ConsoleSpanExporter trace.set_tracer_provider(TracerProvider()) trace.get_tracer_provider().add_span_processor(BatchSpanProcessor(ConsoleSpanExporter())) tracer = trace.get_tracer(__name__) with tracer.start_as_current_span('oss-tanbou-check'): print('Hello OpenTelemetry') PY - 3
Export the span to the console
Confirm Hello OpenTelemetry and the span JSON on standard output. No external collector is required.
python otel_demo.py
Growth
Growth trends · Last 30 days
2,656 Stars
Trend data is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- correlationcontext
- distributed-tracing
- logging
- metrics
- opentelemetry
- python
- sdk
- tracecontext
- Stars
- 2,656
- Forks
- 1,030
- Watchers
- 39
- Open issues
- 422
- Contributors
- 384
- Owner type
- Organization
- Primary language
- Python
- License
- Apache-2.0
- Repository last updated
- Oct 6, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- RQ10,693 Stars
2 shared tag(s) · 1 shared category(s) · Same language
run Python background jobs through lightweight Redis or Valkey queues and workers
Python - OpenTelemetry Java2,457 Stars
4 shared tag(s) · 2 shared category(s)
embed OpenTelemetry APIs, SDKs, and OTLP exporters for traces, metrics, and logs in Java
Java - Sentry45,482 Stars
3 shared tag(s) · 2 shared category(s) · Same language
a developer debugging platform that connects errors, traces, replays, logs, and uptime from detection through root-cause investigation and fixes
Python - Kibana21,309 Stars
3 shared tag(s) · 1 shared category(s)
the interface for querying, visualizing, and operating Elasticsearch data
TypeScript - Fluent Bit8,134 Stars
3 shared tag(s) · 1 shared category(s)
collect, transform, buffer, and route logs, metrics, and traces
C - Grafana Tempo5,510 Stars
3 shared tag(s) · 1 shared category(s)
store high-volume distributed traces around object storage and explore them with TraceQL
Go
Report incorrect information
Tell us if any listing information is incorrect or outdated.