Getting Started • API Documentation • Getting In Touch (GitHub Discussions)
OpenTelemetry Python
This page describes the Python OpenTelemetry implementation. OpenTelemetry is an observability framework for cloud-native software.
Requirements
Unless otherwise noted, all published artifacts support Python 3.6 or higher. See CONTRIBUTING.md for additional instructions for building this project for development.
Getting started
The goal of OpenTelemetry is to provide a single set of APIs to capture distributed traces and metrics from your application and send them to an observability platform. This project lets you do just that for applications written in Python.
This repository includes multiple installable packages. The opentelemetry-api
package includes abstract classes and no-op implementations that comprise the OpenTelemetry API following the
OpenTelemetry specification.
The opentelemetry-sdk
package is the reference implementation of the API.
Libraries that produce telemetry data should only depend on opentelemetry-api
,
and defer the choice of the SDK to the application developer. Applications may
depend on opentelemetry-sdk
or another package that implements the API.
The API and SDK packages are available on the Python Package Index (PyPI). You can install them via pip
with the following commands:
pip install opentelemetry-api
pip install opentelemetry-sdk
The
exporter/
directory includes OpenTelemetry exporter packages. You can install the packages separately with the following command:
pip install opentelemetry-exporter-{exporter}
The
propagator/
directory includes OpenTelemetry propagator packages. You can install the packages separately with the following command:
pip install opentelemetry-propagator-{propagator}
To install the development versions of these packages instead, clone or fork this repository and perform an editable install:
pip install -e ./opentelemetry-api
pip install -e ./opentelemetry-sdk
pip install -e ./instrumentation/opentelemetry-instrumentation-{instrumentation}
For additional exporter and instrumentation packages, see the
opentelemetry-python-contrib
repository.
Running Performance Tests
This section provides details on how to reproduce performance tests results on your own machine.
Resource Usage Tests
- Install scalene using the following command
pip install scalene
- Run the
scalene
tests on any of the example Python programs
scalene opentelemetry-<PACKAGE>/tests/performance/resource-usage/<PATH_TO_TEST>/profile_resource_usage_<NAME_OF_TEST>.py
Documentation
The online documentation is available at https://opentelemetry-python.readthedocs.io/. To access the latest version of the documentation, see https://opentelemetry-python.readthedocs.io/en/latest/.
Contributing
For information about contributing to OpenTelemetry Python, see CONTRIBUTING.md.
We meet weekly on Thursdays at 9AM PST. The meeting is subject to change depending on contributors' availability. Check the OpenTelemetry community calendar for specific dates.
Meetings take place via Zoom video conference. The passcode is 77777.
Meeting notes are available as a public Google doc. For edit access, get in touch on GitHub Discussions.
Approvers (@open-telemetry/python-approvers):
- Aaron Abbott, Google
- Alex Boten, Lightstep
- Srikanth Chekuri
- Nathaniel Ruiz Nowell, AWS
For more information about the approver role, see the community repository.
Maintainers (@open-telemetry/python-maintainers):
- Diego Hurtado, Lightstep
- Leighton Chen, Microsoft
- Owais Lone, Splunk
For more information about the maintainer role, see the community repository.
Thanks to all the people who already contributed!
Project Status
For project boards and milestones, see the following links:
We try to keep these links accurate, so they're the best place to go for questions about project status. The dates and features described in the issues and milestones are estimates and subject to change.