Skip to content

Commit f9f6ebf

Browse files
authored
Merge branch 'main' into fix-2729-none-inferences
2 parents 09d3cd6 + 711df01 commit f9f6ebf

File tree

6 files changed

+35
-19
lines changed

6 files changed

+35
-19
lines changed

src/google/adk/cli/adk_web_server.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -313,11 +313,9 @@ def _setup_telemetry(
313313
# TODO - remove the else branch here once maybe_set_otel_providers is no
314314
# longer experimental.
315315
if otel_to_cloud:
316-
_setup_gcp_telemetry_experimental(internal_exporters=internal_exporters)
316+
_setup_gcp_telemetry(internal_exporters=internal_exporters)
317317
elif _otel_env_vars_enabled():
318-
_setup_telemetry_from_env_experimental(
319-
internal_exporters=internal_exporters
320-
)
318+
_setup_telemetry_from_env(internal_exporters=internal_exporters)
321319
else:
322320
# Old logic - to be removed when above leaves experimental.
323321
tracer_provider = TracerProvider()
@@ -339,7 +337,7 @@ def _otel_env_vars_enabled() -> bool:
339337
])
340338

341339

342-
def _setup_gcp_telemetry_experimental(
340+
def _setup_gcp_telemetry(
343341
internal_exporters: list[SpanProcessor] = None,
344342
):
345343
if typing.TYPE_CHECKING:
@@ -381,7 +379,7 @@ def _setup_gcp_telemetry_experimental(
381379
_setup_instrumentation_lib_if_installed()
382380

383381

384-
def _setup_telemetry_from_env_experimental(
382+
def _setup_telemetry_from_env(
385383
internal_exporters: list[SpanProcessor] = None,
386384
):
387385
from ..telemetry.setup import maybe_set_otel_providers
@@ -669,8 +667,8 @@ def get_fast_api_app(
669667
tear_down_observer: Callback for cleaning up the file system observer.
670668
register_processors: Callback for additional Span processors to be added
671669
to the TracerProvider.
672-
otel_to_cloud: EXPERIMENTAL. Whether to enable Cloud Trace
673-
and Cloud Logging integrations.
670+
otel_to_cloud: Whether to enable Cloud Trace and Cloud Logging
671+
integrations.
674672
675673
Returns:
676674
A FastAPI app instance.

src/google/adk/cli/cli_tools_click.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1032,7 +1032,7 @@ def decorator(func):
10321032
show_default=True,
10331033
default=False,
10341034
help=(
1035-
"EXPERIMENTAL Optional. Whether to write OTel data to Google Cloud"
1035+
"Optional. Whether to write OTel data to Google Cloud"
10361036
" Observability services - Cloud Trace and Cloud Logging."
10371037
),
10381038
)

src/google/adk/telemetry/google_cloud.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
from opentelemetry.sdk.trace import SpanProcessor
3131
from opentelemetry.sdk.trace.export import BatchSpanProcessor
3232

33-
from ..utils.feature_decorator import experimental
3433
from .setup import OTelHooks
3534

3635
if TYPE_CHECKING:
@@ -42,7 +41,6 @@
4241
_DEFAULT_LOG_NAME = 'adk-otel'
4342

4443

45-
@experimental
4644
def get_gcp_exporters(
4745
enable_cloud_tracing: bool = False,
4846
enable_cloud_metrics: bool = False,

src/google/adk/telemetry/setup.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,6 @@
3737
from opentelemetry.sdk.trace import TracerProvider
3838
from opentelemetry.sdk.trace.export import BatchSpanProcessor
3939

40-
from ..utils.feature_decorator import experimental
41-
4240

4341
@dataclass
4442
class OTelHooks:
@@ -47,7 +45,6 @@ class OTelHooks:
4745
log_record_processors: list[LogRecordProcessor] = field(default_factory=list)
4846

4947

50-
@experimental()
5148
def maybe_set_otel_providers(
5249
otel_hooks_to_setup: list[OTelHooks] = None,
5350
otel_resource: Optional[Resource] = None,

src/google/adk/utils/model_name_utils.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,17 @@ def extract_model_name(model_string: str) -> str:
3434
The extracted model name (e.g., "gemini-2.5-pro")
3535
"""
3636
# Pattern for path-based model names
37-
path_pattern = (
38-
r'^projects/[^/]+/locations/[^/]+/publishers/[^/]+/models/(.+)$'
37+
# Need to support both Vertex/Gemini and Apigee model paths.
38+
path_patterns = (
39+
r'^projects/[^/]+/locations/[^/]+/publishers/[^/]+/models/(.+)$',
40+
r'^apigee/(?:[^/]+/)?(?:[^/]+/)?(.+)$',
3941
)
40-
match = re.match(path_pattern, model_string)
41-
if match:
42-
return match.group(1)
42+
# Check against all path-based patterns
43+
for pattern in path_patterns:
44+
match = re.match(pattern, model_string)
45+
if match:
46+
# Return the captured group (the model name)
47+
return match.group(1)
4348

4449
# Handle 'models/' prefixed names like "models/gemini-2.5-pro"
4550
if model_string.startswith('models/'):

tests/unittests/utils/test_model_name_utils.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,24 @@ def test_extract_model_name_path_based_model(self):
4242
path_model_3 = 'projects/test-project/locations/europe-west1/publishers/google/models/claude-3-sonnet'
4343
assert extract_model_name(path_model_3) == 'claude-3-sonnet'
4444

45+
path_model_4 = 'apigee/gemini-2.5-flash'
46+
assert extract_model_name(path_model_4) == 'gemini-2.5-flash'
47+
48+
path_model_5 = 'apigee/v1/gemini-2.5-flash'
49+
assert extract_model_name(path_model_5) == 'gemini-2.5-flash'
50+
51+
path_model_6 = 'apigee/gemini/gemini-2.5-flash'
52+
assert extract_model_name(path_model_6) == 'gemini-2.5-flash'
53+
54+
path_model_7 = 'apigee/vertex_ai/gemini-2.5-flash'
55+
assert extract_model_name(path_model_7) == 'gemini-2.5-flash'
56+
57+
path_model_8 = 'apigee/gemini/v1/gemini-2.5-flash'
58+
assert extract_model_name(path_model_8) == 'gemini-2.5-flash'
59+
60+
path_model_9 = 'apigee/vertex_ai/v1beta/gemini-2.5-flash'
61+
assert extract_model_name(path_model_9) == 'gemini-2.5-flash'
62+
4563
def test_extract_model_name_with_models_prefix(self):
4664
"""Test extraction of model names with 'models/' prefix."""
4765
assert extract_model_name('models/gemini-2.5-pro') == 'gemini-2.5-pro'

0 commit comments

Comments
 (0)