From e4a5b541357d4bf291ac73f16fb2a8e31e8f2bda Mon Sep 17 00:00:00 2001 From: Riccardo Magliocchetti Date: Fri, 21 Feb 2025 10:55:10 +0100 Subject: [PATCH] scripts/generate_instrumentation_bootstrap: don't force genai instrumentations versions (#3278) * scripts/generate_instrumentation_bootstrap: don't force genai instrumentations versions Since genai instrumentations are released on their own we cannot have a fixed required version on this side. While at it add vertexai to the list of excluded packages since: - it has not been released yet - the name is already claimed by openllmetry * Regenerate bootstrap_gen * Please spellcheck --------- Co-authored-by: Leighton Chen --- .../instrumentation/bootstrap_gen.py | 6 +----- scripts/generate_instrumentation_bootstrap.py | 14 ++++++++++++-- scripts/otel_packaging.py | 16 ++++++++++------ 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/opentelemetry-instrumentation/src/opentelemetry/instrumentation/bootstrap_gen.py b/opentelemetry-instrumentation/src/opentelemetry/instrumentation/bootstrap_gen.py index 6891d5ce9..73665c847 100644 --- a/opentelemetry-instrumentation/src/opentelemetry/instrumentation/bootstrap_gen.py +++ b/opentelemetry-instrumentation/src/opentelemetry/instrumentation/bootstrap_gen.py @@ -18,11 +18,7 @@ libraries = [ { "library": "openai >= 1.26.0", - "instrumentation": "opentelemetry-instrumentation-openai-v2==2.2b0.dev", - }, - { - "library": "google-cloud-aiplatform >= 1.64", - "instrumentation": "opentelemetry-instrumentation-vertexai==2.1b0.dev", + "instrumentation": "opentelemetry-instrumentation-openai-v2", }, { "library": "aio_pika >= 7.2.0, < 10.0.0", diff --git a/scripts/generate_instrumentation_bootstrap.py b/scripts/generate_instrumentation_bootstrap.py index 65669e42f..435f651f7 100755 --- a/scripts/generate_instrumentation_bootstrap.py +++ b/scripts/generate_instrumentation_bootstrap.py @@ -60,6 +60,13 @@ gen_path = os.path.join( # See https://github.com/open-telemetry/opentelemetry-python-contrib/issues/2787 packages_to_exclude = [ "opentelemetry-instrumentation-aws-lambda", + "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", ] @@ -67,8 +74,11 @@ def main(): # pylint: disable=no-member default_instrumentations = ast.List(elts=[]) libraries = ast.List(elts=[]) - for pkg in get_instrumentation_packages(): - if pkg.get("name") in packages_to_exclude: + for pkg in get_instrumentation_packages( + unversioned_packages=unversioned_packages + ): + pkg_name = pkg.get("name") + if pkg_name in packages_to_exclude: continue if not pkg["instruments"]: default_instrumentations.elts.append(ast.Str(pkg["requirement"])) diff --git a/scripts/otel_packaging.py b/scripts/otel_packaging.py index 3b09dd87e..5a843b0ae 100644 --- a/scripts/otel_packaging.py +++ b/scripts/otel_packaging.py @@ -24,7 +24,8 @@ instrumentations_path = os.path.join(root_path, "instrumentation") genai_instrumentations_path = os.path.join(root_path, "instrumentation-genai") -def get_instrumentation_packages(): +def get_instrumentation_packages(unversioned_packages=None): + unversioned_packages = unversioned_packages or [] pkg_paths = [] for pkg in os.listdir(instrumentations_path): pkg_path = os.path.join(instrumentations_path, pkg) @@ -62,12 +63,15 @@ def get_instrumentation_packages(): "instruments" ], } - instrumentation["requirement"] = "==".join( - ( - instrumentation["name"], - instrumentation["version"], + if instrumentation["name"] in unversioned_packages: + instrumentation["requirement"] = instrumentation["name"] + else: + instrumentation["requirement"] = "==".join( + ( + instrumentation["name"], + instrumentation["version"], + ) ) - ) yield instrumentation