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 <lechen@microsoft.com>
This commit is contained in:
Riccardo Magliocchetti
2025-02-21 10:55:10 +01:00
committed by GitHub
parent b5a0ee526c
commit e4a5b54135
3 changed files with 23 additions and 13 deletions

View File

@ -18,11 +18,7 @@
libraries = [ libraries = [
{ {
"library": "openai >= 1.26.0", "library": "openai >= 1.26.0",
"instrumentation": "opentelemetry-instrumentation-openai-v2==2.2b0.dev", "instrumentation": "opentelemetry-instrumentation-openai-v2",
},
{
"library": "google-cloud-aiplatform >= 1.64",
"instrumentation": "opentelemetry-instrumentation-vertexai==2.1b0.dev",
}, },
{ {
"library": "aio_pika >= 7.2.0, < 10.0.0", "library": "aio_pika >= 7.2.0, < 10.0.0",

View File

@ -60,6 +60,13 @@ gen_path = os.path.join(
# See https://github.com/open-telemetry/opentelemetry-python-contrib/issues/2787 # See https://github.com/open-telemetry/opentelemetry-python-contrib/issues/2787
packages_to_exclude = [ packages_to_exclude = [
"opentelemetry-instrumentation-aws-lambda", "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 # pylint: disable=no-member
default_instrumentations = ast.List(elts=[]) default_instrumentations = ast.List(elts=[])
libraries = ast.List(elts=[]) libraries = ast.List(elts=[])
for pkg in get_instrumentation_packages(): for pkg in get_instrumentation_packages(
if pkg.get("name") in packages_to_exclude: unversioned_packages=unversioned_packages
):
pkg_name = pkg.get("name")
if pkg_name in packages_to_exclude:
continue continue
if not pkg["instruments"]: if not pkg["instruments"]:
default_instrumentations.elts.append(ast.Str(pkg["requirement"])) default_instrumentations.elts.append(ast.Str(pkg["requirement"]))

View File

@ -24,7 +24,8 @@ instrumentations_path = os.path.join(root_path, "instrumentation")
genai_instrumentations_path = os.path.join(root_path, "instrumentation-genai") 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 = [] pkg_paths = []
for pkg in os.listdir(instrumentations_path): for pkg in os.listdir(instrumentations_path):
pkg_path = os.path.join(instrumentations_path, pkg) pkg_path = os.path.join(instrumentations_path, pkg)
@ -62,12 +63,15 @@ def get_instrumentation_packages():
"instruments" "instruments"
], ],
} }
instrumentation["requirement"] = "==".join( if instrumentation["name"] in unversioned_packages:
( instrumentation["requirement"] = instrumentation["name"]
instrumentation["name"], else:
instrumentation["version"], instrumentation["requirement"] = "==".join(
(
instrumentation["name"],
instrumentation["version"],
)
) )
)
yield instrumentation yield instrumentation