Today, OpenTelemetry Python distributed tracing API/SDK released its 1.0 version. This version is marked as stable based on the OpenTelemetry specification! We are on a journey to bring end-to-end, vendor-neutral observability to Python developers or service engineers working on distributed applications.
This new release includes the following:
- OpenTelemetry Python APIs: Tracing API, Baggage API, Context API and Propagators API.
- An SDK providing controls for sampling, processing, and export.
- Exporters to Jaeger, Zipkin and the OpenTelemetry Protocol (OTLP). With OTLP you can use OpenTelemetry Collector to export traces to a multitude of exporters.
- Documentation, which includes samples, getting started guides and the latest stable api documentation.
The OpenTelemetry vision is to create a worldwide standard for all three pillars of observability: distributed tracing, metrics, and logs. This release addresses the first of the three pillars — distributed tracing. We continue to work on metrics and logs.
OpenTelemetry is meant to converge and sunset two prior open source projects: OpenTracing and OpenCensus. OpenTracing customers will be able to use the OpenTracing Shim to migrate their instrumentation shortly after the specification becomes stable. OpenCensus customers do not currently have a shim to OpenTelemetry, and customers can rely on vendor-specific guidance for potential future migrations.
If you’d like to try it out yourself, check out the getting started guide here.
This open source project included contributions from 96+ developers from 30+ organizations. A special thanks to Alex Boten (Lightstep) and Leighton Chen (Microsoft) for spending considerable time as maintainers and together reviewing 800+ pull requests (fun nerdy facts!).
Our roadmap over the next several months includes:
- Improving and Adding Python Instrumentation Libraries.
- Building Metrics API/SDK.
- Post-Release Tracing API/SDK Improvements.
Improving and adding instrumentation libraries will enable out-of-box distributed tracing across common Python instrumentation libraries including Flask, Django, PostgreSQL, and MySQL. Many instrumentation libraries are experimental now and will continue to mature over the next several months.
We are actively looking for additional contributors! Anyone interested in learning more about OpenTelemetry Python is welcome to join our rapidly growing community on GitHub, join the OpenTelemetry Python channel on the CNCF Slack instance (If you’re new, you can create a CNCF Slack account here), or participate in our weekly community meeting!