Skip to content

Commit 6d8a83d

Browse files
vertex-sdk-botcopybara-github
authored andcommitted
feat: Updates the ADK template to direct structured JSON logs to standard output.
FUTURE_COPYBARA_INTEGRATE_REVIEW=#6180 from googleapis:release-please--branches--main f893ba4 PiperOrigin-RevId: 837124358
1 parent 08abe62 commit 6d8a83d

File tree

2 files changed

+26
-2
lines changed
  • vertexai
    • agent_engines/templates
    • preview/reasoning_engines/templates

2 files changed

+26
-2
lines changed

vertexai/agent_engines/templates/adk.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import asyncio
2828
from collections.abc import Awaitable
2929
import queue
30+
import sys
3031
import threading
3132
import warnings
3233

@@ -437,14 +438,25 @@ def _detect_cloud_resource_id(project_id: str) -> Optional[str]:
437438
"opentelemetry-exporter-gcp-logging", needed_for_logging=True
438439
)
439440

441+
class _SimpleLogRecordProcessor(
442+
opentelemetry.sdk._logs.export.SimpleLogRecordProcessor
443+
):
444+
def force_flush(
445+
self, timeout_millis: int = 30000
446+
) -> bool: # pylint: disable=no-self-use
447+
sys.stdout.flush()
448+
sys.stderr.flush()
449+
return True
450+
440451
logger_provider = opentelemetry.sdk._logs.LoggerProvider(resource=resource)
441452
logger_provider.add_log_record_processor(
442-
opentelemetry.sdk._logs.export.BatchLogRecordProcessor(
453+
_SimpleLogRecordProcessor(
443454
opentelemetry.exporter.cloud_logging.CloudLoggingExporter(
444455
project_id=project_id,
445456
default_log_name=os.getenv(
446457
"GCP_DEFAULT_LOG_NAME", "adk-on-agent-engine"
447458
),
459+
structured_json_file=sys.stdout,
448460
),
449461
)
450462
)

vertexai/preview/reasoning_engines/templates/adk.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import asyncio
2828
from collections.abc import Awaitable
2929
import queue
30+
import sys
3031
import threading
3132

3233

@@ -439,14 +440,25 @@ def _detect_cloud_resource_id(project_id: str) -> Optional[str]:
439440
"opentelemetry-exporter-gcp-logging", needed_for_logging=True
440441
)
441442

443+
class _SimpleLogRecordProcessor(
444+
opentelemetry.sdk._logs.export.SimpleLogRecordProcessor
445+
):
446+
def force_flush(
447+
self, timeout_millis: int = 30000
448+
) -> bool: # pylint: disable=no-self-use
449+
sys.stdout.flush()
450+
sys.stderr.flush()
451+
return True
452+
442453
logger_provider = opentelemetry.sdk._logs.LoggerProvider(resource=resource)
443454
logger_provider.add_log_record_processor(
444-
opentelemetry.sdk._logs.export.BatchLogRecordProcessor(
455+
_SimpleLogRecordProcessor(
445456
opentelemetry.exporter.cloud_logging.CloudLoggingExporter(
446457
project_id=project_id,
447458
default_log_name=os.getenv(
448459
"GCP_DEFAULT_LOG_NAME", "adk-on-agent-engine"
449460
),
461+
structured_json_file=sys.stdout,
450462
),
451463
)
452464
)

0 commit comments

Comments
 (0)