OpenTelemetry instrumentation for Python modules
Go to file
DylanRussell 6edb3f8dc7
Update vertexai instrumentation to be in-line with the latest semantic conventions (#3709)
* Commit changes

* Fix all tests

* Add changelog

* Fix typecheck

* Fix tests

* get rid of typing.Any subclass

* Update PR to use latest gen ai utils..

* empty commit

* Try to fix typechecker

* Commit latest changes

* Address comments

* Address comments

* Fix lint and spell check

* Fix last typecheck issues..

* add to workspace

---------

Co-authored-by: Aaron Abbott <aaronabbott@google.com>
2025-09-19 20:54:19 +00:00
.github Revise component owners (#3757) 2025-09-17 14:16:34 +00:00
_template Update version to 1.38.0.dev/0.59b0.dev (#3746) 2025-09-11 12:00:58 +00:00
docs Add `fsspec` gen ai upload hook (#3759) 2025-09-17 13:44:44 -04:00
exporter Update version to 1.38.0.dev/0.59b0.dev (#3746) 2025-09-11 12:00:58 +00:00
instrumentation Update version to 1.38.0.dev/0.59b0.dev (#3746) 2025-09-11 12:00:58 +00:00
instrumentation-genai Update vertexai instrumentation to be in-line with the latest semantic conventions (#3709) 2025-09-19 20:54:19 +00:00
opentelemetry-contrib-instrumentations Update version to 1.38.0.dev/0.59b0.dev (#3746) 2025-09-11 12:00:58 +00:00
opentelemetry-distro Update version to 1.38.0.dev/0.59b0.dev (#3746) 2025-09-11 12:00:58 +00:00
opentelemetry-instrumentation Update version to 1.38.0.dev/0.59b0.dev (#3746) 2025-09-11 12:00:58 +00:00
processor/opentelemetry-processor-baggage Update version to 1.38.0.dev/0.59b0.dev (#3746) 2025-09-11 12:00:58 +00:00
propagator Update version to 1.38.0.dev/0.59b0.dev (#3746) 2025-09-11 12:00:58 +00:00
resource Update version to 1.38.0.dev/0.59b0.dev (#3746) 2025-09-11 12:00:58 +00:00
scripts Exclude opentelemetry-util-genai from release upload (#3747) 2025-09-11 13:35:07 +02:00
sdk-extension/opentelemetry-sdk-extension-aws AWS X-Ray Remote Sampler Part 1 - Initial Classes and Rules Poller Implementation (#3366) 2025-08-25 14:57:48 +02:00
tests/opentelemetry-docker-tests/tests Chore: Drop support for Python 3.8 (#3399) 2025-05-27 17:26:02 +02:00
util gen ai uploader timeout and fix flaky bugs (#3770) 2025-09-19 19:17:31 +00:00
.codespellrc Codespell ci (#1237) 2022-08-29 15:08:25 +05:30
.coveragerc Update tooling (#1330) 2022-09-15 23:42:49 +05:30
.gitignore Move benchmarks outside of tests directory (#2670) 2024-07-09 17:17:00 -06:00
.pre-commit-config.yaml Use UV to install all needed packages locally (#3124) 2025-02-20 17:04:31 -05:00
.pylintrc Chore: Drop support for Python 3.8 (#3399) 2025-05-27 17:26:02 +02:00
.readthedocs.yml Update .readthedocs.yml (#3264) 2025-02-12 14:54:01 +01:00
CHANGELOG.md Fix the changelog from #3716 (#3764) 2025-09-17 20:48:37 +00:00
CONTRIBUTING.md Add statement encouraging contributors to review PRs (#3686) 2025-08-11 15:21:23 +02:00
LICENSE fix: revert modifications to Apache license (#2429) 2024-04-22 13:23:38 -05:00
LICENSE.Apache fix: revert modifications to Apache license (#2429) 2024-04-22 13:23:38 -05:00
LICENSE.BSD3 Small cleanup (#27) 2020-04-08 13:17:31 -07:00
README.md Add @dylanrussell to contrib approvers (#3697) 2025-08-18 14:31:01 -04:00
RELEASING.md GenAI Utils Structure (#3672) 2025-08-14 22:33:26 -04:00
dev-requirements.txt Update vertexai instrumentation to be in-line with the latest semantic conventions (#3709) 2025-09-19 20:54:19 +00:00
docs-requirements.txt Add `fsspec` gen ai upload hook (#3759) 2025-09-17 13:44:44 -04:00
eachdist.ini Update version to 1.38.0.dev/0.59b0.dev (#3746) 2025-09-11 12:00:58 +00:00
gen-requirements.txt build(deps): bump jinja2 from 3.1.4 to 3.1.6 (#3340) 2025-03-06 11:20:54 +00:00
pyproject.toml Update vertexai instrumentation to be in-line with the latest semantic conventions (#3709) 2025-09-19 20:54:19 +00:00
pytest.ini Falcon 3 support (#644) 2021-09-27 19:58:13 +00:00
rtd-requirements.txt test two requirements files for docs and rtd (#3039) 2024-12-03 10:03:23 -08:00
tox-uv.toml Fix uv setup when using tox (#3282) 2025-02-21 16:26:46 +00:00
tox.ini Update vertexai instrumentation to be in-line with the latest semantic conventions (#3709) 2025-09-19 20:54:19 +00:00
uv.lock Update vertexai instrumentation to be in-line with the latest semantic conventions (#3709) 2025-09-19 20:54:19 +00:00

README.md

<p align="center"> <strong> <a href="https://opentelemetry.io/docs/instrumentation/python/getting-started/">Getting Started<a/>   •   <a href="https://opentelemetry-python-contrib.readthedocs.io/">API Documentation<a/>   •   <a href="https://github.com/open-telemetry/opentelemetry-python/discussions">Getting In Touch (GitHub Discussions)<a/> </strong> </p> <p align="center"> <a href="https://github.com/open-telemetry/opentelemetry-python-contrib/releases"> <img alt="GitHub release (latest by date including pre-releases)" src="https://img.shields.io/github/v/release/open-telemetry/opentelemetry-python-contrib?include_prereleases&style=for-the-badge"> </a> <a href="https://codecov.io/gh/open-telemetry/opentelemetry-python-contrib/branch/main/"> <img alt="Codecov Status" src="https://img.shields.io/codecov/c/github/open-telemetry/opentelemetry-python-contrib?style=for-the-badge"> </a> <a href="https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/LICENSE"> <img alt="license" src="https://img.shields.io/badge/license-Apache_2.0-green.svg?style=for-the-badge"> </a> <br/> <a href="https://github.com/open-telemetry/opentelemetry-python-contrib/actions/workflows/test_0.yml"> <img alt="Build Status 0" src="https://github.com/open-telemetry/opentelemetry-python-contrib/actions/workflows/test_0.yml/badge.svg?branch=main"> </a> <a href="https://github.com/open-telemetry/opentelemetry-python-contrib/actions/workflows/test_1.yml"> <img alt="Build Status 1" src="https://github.com/open-telemetry/opentelemetry-python-contrib/actions/workflows/test_1.yml/badge.svg?branch=main"> </a> <img alt="Beta" src="https://img.shields.io/badge/status-beta-informational?logo=data:image/png;base64,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"> </p> <p align="center"> <strong> <a href="CONTRIBUTING.md">Contributing<a/>   •   <a href="https://opentelemetry-python-contrib.readthedocs.io/en/latest/#instrumentations">Instrumentations<a/> </strong> </p>

Getting Started   •   API Documentation   •   Getting In Touch (GitHub Discussions)

GitHub release (latest by date including pre-releases) Codecov Status license
Build Status 0 Build Status 1 Beta

Contributing   •   Instrumentations

OpenTelemetry Python Contrib

The Python auto-instrumentation libraries for OpenTelemetry (per OTEP 0001)

Index

Installation

This repository includes installable packages for each instrumented library. 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 these libraries are currently in beta, and shouldn't generally be used in production environments.

Unless explicitly stated otherwise, any instrumentation here for a particular library is not developed or maintained by the authors of such library.

The instrumentation/ directory includes OpenTelemetry instrumentation packages, which can be installed separately as:

pip install opentelemetry-instrumentation-{integration}

To install the development versions of these packages instead, clone or fork this repo and do an editable install:

pip install -e ./instrumentation/opentelemetry-instrumentation-{integration}

Releasing

Maintainers release new versions of the packages in opentelemetry-python-contrib on a monthly cadence. See releases for all previous releases.

Contributions that enhance OTel for Python are welcome to be hosted upstream for the benefit of group collaboration. Maintainers will look for things like good documentation, good unit tests, and in general their own confidence when deciding to release a package with the stability guarantees that are implied with a 1.0 release.

To resolve this, members of the community are encouraged to commit to becoming a CODEOWNER for packages in -contrib that they feel experienced enough to maintain. CODEOWNERS can then follow the checklist below to release -contrib packages as 1.0 stable:

Releasing a package as 1.0 stable

To release a package as 1.0 stable, the package:

  • SHOULD have a CODEOWNER. To become one, submit an issue and explain why you meet the responsibilities found in CODEOWNERS.
  • MUST have unit tests that cover all supported versions of the instrumented library.
    • e.g. Instrumentation packages might use different techniques to instrument different major versions of python packages
  • MUST have clear documentation for non-obvious usages of the package
    • e.g. If an instrumentation package uses flags, a token as context, or parameters that are not typical of the BaseInstrumentor class, these are documented
  • After the release of 1.0, a CODEOWNER may no longer feel like they have the bandwidth to meet the responsibilities of maintaining the package. That's not a problem at all, life happens! However, if that is the case, we ask that the CODEOWNER please raise an issue indicating that they would like to be removed as a CODEOWNER so that they don't get pinged on future PRs. Ultimately, we hope to use that issue to find a new CODEOWNER.

Semantic Convention status of instrumentations

In our efforts to maintain optimal user experience and prevent breaking changes for transitioning into stable semantic conventions, OpenTelemetry Python is adopting the semantic convention migration plan for several instrumentations. Currently this plan is only being adopted for HTTP-related instrumentations, but will eventually cover all types. Please refer to the semconv status column of the instrumentation README of the current status of instrumentations' semantic conventions. The possible values are development, stable and migration referring to status of that particular semantic convention. Migration refers to an instrumentation that currently supports the migration plan.

Contributing

See CONTRIBUTING.md

We meet weekly on Thursday at 9AM PT. The meeting is subject to change depending on contributors' availability. Check the OpenTelemetry community calendar for specific dates and for the Zoom link.

Meeting notes are available as a public Google doc. For edit access, get in touch on GitHub Discussions.

Maintainers

For more information about the maintainer role, see the community repository.

Approvers

For more information about the approver role, see the community repository.

Emeritus Maintainers

For more information about the emeritus role, see the community repository.

Emeritus Approvers

For more information about the emeritus role, see the community repository.

Thanks to all of our contributors!

Repo contributors