Skip to content

Commit 6ec12e1

Browse files
vertex-sdk-botcopybara-github
authored andcommitted
feat: Updates the ADK template to direct structured JSON logs to standard output.
PiperOrigin-RevId: 837124358
1 parent da79e21 commit 6ec12e1

File tree

2 files changed

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

2 files changed

+12
-2
lines changed

vertexai/agent_engines/templates/adk.py

Lines changed: 9 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,21 @@ def _detect_cloud_resource_id(project_id: str) -> Optional[str]:
437438
"opentelemetry-exporter-gcp-logging", needed_for_logging=True
438439
)
439440

441+
class _SimpleLogRecordProcessor(opentelemetry.sdk._logs.export.SimpleLogRecordProcessor):
442+
def force_flush(self, timeout_millis: int = 30000) -> bool: # pylint: disable=no-self-use
443+
sys.stdout.flush()
444+
sys.stderr.flush()
445+
return True
446+
440447
logger_provider = opentelemetry.sdk._logs.LoggerProvider(resource=resource)
441448
logger_provider.add_log_record_processor(
442-
opentelemetry.sdk._logs.export.BatchLogRecordProcessor(
449+
_SimpleLogRecordProcessor(
443450
opentelemetry.exporter.cloud_logging.CloudLoggingExporter(
444451
project_id=project_id,
445452
default_log_name=os.getenv(
446453
"GCP_DEFAULT_LOG_NAME", "adk-on-agent-engine"
447454
),
455+
structured_json_file=sys.stdout,
448456
),
449457
)
450458
)

vertexai/preview/reasoning_engines/templates/adk.py

Lines changed: 3 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

@@ -441,12 +442,13 @@ def _detect_cloud_resource_id(project_id: str) -> Optional[str]:
441442

442443
logger_provider = opentelemetry.sdk._logs.LoggerProvider(resource=resource)
443444
logger_provider.add_log_record_processor(
444-
opentelemetry.sdk._logs.export.BatchLogRecordProcessor(
445+
opentelemetry.sdk._logs.export.SimpleLogRecordProcessor(
445446
opentelemetry.exporter.cloud_logging.CloudLoggingExporter(
446447
project_id=project_id,
447448
default_log_name=os.getenv(
448449
"GCP_DEFAULT_LOG_NAME", "adk-on-agent-engine"
449450
),
451+
structured_json_file=sys.stdout,
450452
),
451453
)
452454
)

0 commit comments

Comments
 (0)