Add opentelemetry-instrumentation-vertexai>=2.0b0 to opentelemetry-bootstrap (#3307)

Co-authored-by: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com>
This commit is contained in:
Aaron Abbott
2025-02-28 09:23:38 -05:00
committed by GitHub
parent e0189e25dc
commit f17a1bd65a
4 changed files with 25 additions and 12 deletions

View File

@ -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)) ([#3302](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3302))
- `opentelemetry-instrumentation` make it simpler to initialize auto-instrumentation programmatically - `opentelemetry-instrumentation` make it simpler to initialize auto-instrumentation programmatically
([#3273](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3273)) ([#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 ### Fixed

View File

@ -20,6 +20,10 @@ libraries = [
"library": "openai >= 1.26.0", "library": "openai >= 1.26.0",
"instrumentation": "opentelemetry-instrumentation-openai-v2", "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", "library": "aio_pika >= 7.2.0, < 10.0.0",
"instrumentation": "opentelemetry-instrumentation-aio-pika==0.52b0.dev", "instrumentation": "opentelemetry-instrumentation-aio-pika==0.52b0.dev",

View File

@ -64,15 +64,14 @@ packages_to_exclude = [
# development. This filter will get removed once it is further along in its # development. This filter will get removed once it is further along in its
# development lifecycle and ready to be included by default. # development lifecycle and ready to be included by default.
"opentelemetry-instrumentation-google-genai", "opentelemetry-instrumentation-google-genai",
"opentelemetry-instrumentation-vertexai", # not released yet
] ]
# We should not put any version limit for instrumentations that are released independently # Static version specifiers for instrumentations that are released independently
unversioned_packages = [ independent_packages = {
"opentelemetry-instrumentation-openai-v2", "opentelemetry-instrumentation-openai-v2": "",
"opentelemetry-instrumentation-vertexai", "opentelemetry-instrumentation-vertexai": ">=2.0b0",
"opentelemetry-instrumentation-google-genai", "opentelemetry-instrumentation-google-genai": "",
] }
def main(): def main():
@ -80,7 +79,7 @@ def main():
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(
unversioned_packages=unversioned_packages independent_packages=independent_packages
): ):
pkg_name = pkg.get("name") pkg_name = pkg.get("name")
if pkg_name in packages_to_exclude: if pkg_name in packages_to_exclude:

View File

@ -12,6 +12,8 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from __future__ import annotations
import os import os
import subprocess import subprocess
from subprocess import CalledProcessError from subprocess import CalledProcessError
@ -24,8 +26,10 @@ 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(unversioned_packages=None): def get_instrumentation_packages(
unversioned_packages = unversioned_packages or [] independent_packages: dict[str, str] | None = None,
):
independent_packages = independent_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)
@ -63,8 +67,11 @@ def get_instrumentation_packages(unversioned_packages=None):
"instruments" "instruments"
], ],
} }
if instrumentation["name"] in unversioned_packages: if instrumentation["name"] in independent_packages:
instrumentation["requirement"] = instrumentation["name"] specifier = independent_packages[instrumentation["name"]]
instrumentation["requirement"] = (
f"{instrumentation['name']}{specifier}"
)
else: else:
instrumentation["requirement"] = "==".join( instrumentation["requirement"] = "==".join(
( (