diff --git a/CHANGELOG.md b/CHANGELOG.md index 5fd226abdf..a8ebe71151 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ([#3302](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3302)) - `opentelemetry-instrumentation` make it simpler to initialize auto-instrumentation programmatically ([#3273](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3273)) +- Add `opentelemetry-instrumentation-vertexai>=2.0b0` to `opentelemetry-bootstrap` + ([#3307](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3307)) + ### Fixed diff --git a/opentelemetry-instrumentation/src/opentelemetry/instrumentation/bootstrap_gen.py b/opentelemetry-instrumentation/src/opentelemetry/instrumentation/bootstrap_gen.py index 73665c847a..78dd70faa1 100644 --- a/opentelemetry-instrumentation/src/opentelemetry/instrumentation/bootstrap_gen.py +++ b/opentelemetry-instrumentation/src/opentelemetry/instrumentation/bootstrap_gen.py @@ -20,6 +20,10 @@ "library": "openai >= 1.26.0", "instrumentation": "opentelemetry-instrumentation-openai-v2", }, + { + "library": "google-cloud-aiplatform >= 1.64", + "instrumentation": "opentelemetry-instrumentation-vertexai>=2.0b0", + }, { "library": "aio_pika >= 7.2.0, < 10.0.0", "instrumentation": "opentelemetry-instrumentation-aio-pika==0.52b0.dev", diff --git a/scripts/generate_instrumentation_bootstrap.py b/scripts/generate_instrumentation_bootstrap.py index 71469b1fb2..c8bc0f936d 100755 --- a/scripts/generate_instrumentation_bootstrap.py +++ b/scripts/generate_instrumentation_bootstrap.py @@ -64,15 +64,14 @@ # development. This filter will get removed once it is further along in its # development lifecycle and ready to be included by default. "opentelemetry-instrumentation-google-genai", - "opentelemetry-instrumentation-vertexai", # not released yet ] -# We should not put any version limit for instrumentations that are released independently -unversioned_packages = [ - "opentelemetry-instrumentation-openai-v2", - "opentelemetry-instrumentation-vertexai", - "opentelemetry-instrumentation-google-genai", -] +# Static version specifiers for instrumentations that are released independently +independent_packages = { + "opentelemetry-instrumentation-openai-v2": "", + "opentelemetry-instrumentation-vertexai": ">=2.0b0", + "opentelemetry-instrumentation-google-genai": "", +} def main(): @@ -80,7 +79,7 @@ def main(): default_instrumentations = ast.List(elts=[]) libraries = ast.List(elts=[]) for pkg in get_instrumentation_packages( - unversioned_packages=unversioned_packages + independent_packages=independent_packages ): pkg_name = pkg.get("name") if pkg_name in packages_to_exclude: diff --git a/scripts/otel_packaging.py b/scripts/otel_packaging.py index 5a843b0aea..12e424cf2e 100644 --- a/scripts/otel_packaging.py +++ b/scripts/otel_packaging.py @@ -12,6 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations + import os import subprocess from subprocess import CalledProcessError @@ -24,8 +26,10 @@ genai_instrumentations_path = os.path.join(root_path, "instrumentation-genai") -def get_instrumentation_packages(unversioned_packages=None): - unversioned_packages = unversioned_packages or [] +def get_instrumentation_packages( + independent_packages: dict[str, str] | None = None, +): + independent_packages = independent_packages or {} pkg_paths = [] for pkg in os.listdir(instrumentations_path): pkg_path = os.path.join(instrumentations_path, pkg) @@ -63,8 +67,11 @@ def get_instrumentation_packages(unversioned_packages=None): "instruments" ], } - if instrumentation["name"] in unversioned_packages: - instrumentation["requirement"] = instrumentation["name"] + if instrumentation["name"] in independent_packages: + specifier = independent_packages[instrumentation["name"]] + instrumentation["requirement"] = ( + f"{instrumentation['name']}{specifier}" + ) else: instrumentation["requirement"] = "==".join( (