The Python OpenTelemetry client.
This repository includes multiple installable packages. The opentelemetry-api
package includes abstract classes and no-op implementations that comprise the OpenTelemetry API following
the
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.
Please note that this library is currently in alpha, and shouldn't be used in production environments.
The API and SDK packages are available on PyPI, and can installed via pip
:
pip install opentelemetry-api
pip install opentelemetry-sdk
The
ext/
directory includes OpenTelemetry integration packages, which can be installed
separately as:
pip install opentelemetry-ext-{integration}
To install the development versions of these packages instead, clone or fork this repo and do an editable install:
pip install -e ./opentelemetry-api
pip install -e ./opentelemetry-sdk
pip install -e ./ext/opentelemetry-ext-{integration}
from opentelemetry import trace
from opentelemetry.context import Context
from opentelemetry.sdk.trace import Tracer
from opentelemetry.sdk.trace.export import ConsoleSpanExporter
from opentelemetry.sdk.trace.export import SimpleExportSpanProcessor
trace.set_preferred_tracer_implementation(lambda T: Tracer())
tracer = trace.tracer()
tracer.add_span_processor(
SimpleExportSpanProcessor(ConsoleSpanExporter())
)
with tracer.start_span('foo'):
with tracer.start_span('bar'):
with tracer.start_span('baz'):
print(Context)
See the API documentation for more detail, and the opentelemetry-example-app for a complete example.
See CONTRIBUTING.md
OpenTelemetry Python is under active development.
The library is not yet generally available, and releases aren't guaranteed to conform to a specific version of the specification. Future releases will not attempt to maintain backwards compatibility with current releases.
The alpha release includes:
- Tracing API
- Tracing SDK
- Metrics API
- Metrics SDK
- W3C Context Propagation
- B3 Context Propagation
Future release targets include:
Component | Version | Target Date |
---|---|---|
Zipkin Trace Exporter | Beta | October 14 2019 |
Jaeger Trace Exporter | Beta | October 14 2019 |
Prometheus Metrics Exporter | Beta | October 14 2019 |
OpenTracing Bridge | Beta | October 14 2019 |
OpenCensus Bridge | Beta | October 14 2019 |