google-agents-cli-observability
google/agents-cli
Set up tracing, logging, and monitoring for deployed agents with Cloud Trace, BigQuery analytics, and third-party integrations.
What is google-agents-cli-observability?
This skill guides you through observability setup for agents-cli deployed agents, covering Cloud Trace (automatic distributed tracing), prompt-response logging to GCS and BigQuery, BigQuery Agent Analytics for structured events, and third-party platform integrations. Use it when you need to monitor production agents, debug latency, audit LLM interactions, or set up custom dashboards.
- Configure Cloud Trace for distributed tracing of agent execution flow, latency, and errors
- Set up prompt-response logging to GCS and BigQuery for GenAI interaction auditing and compliance
- Enable BigQuery Agent Analytics for structured agent events, tool use tracking, and custom dashboards
- Integrate third-party observability platforms (AgentOps, Phoenix, MLflow) via OpenTelemetry
- Manage observability environment variables and IAM roles for Reasoning Engine deployments
- Provision infrastructure (service accounts, GCS buckets, BigQuery datasets) via Terraform
How to install google-agents-cli-observability
npx skills add https://github.com/google/agents-cli --skill google-agents-cli-observability- agents-cli installed via `uv tool install google-agents-cli`
- Google Cloud project with appropriate IAM permissions
- For BigQuery/GCS features: run `agents-cli infra single-project --project PROJECT_ID` to provision Terraform-managed resources
- For Agent Runtime deployments: provision infrastructure *before* first deploy to avoid state mismatches
How to use google-agents-cli-observability
- 1.Determine which observability tier(s) you need: Cloud Trace (always on), Prompt-Response Logging, BigQuery Agent Analytics, or third-party integrations
- 2.For Terraform-managed deployments, run `agents-cli infra single-project --project PROJECT_ID` before your first `agents-cli deploy`
- 3.Review `references/cloud-trace-and-logging.md` in your scaffolded project for environment variables and verification commands
- 4.For existing SDK-deployed Reasoning Engines, either delete and re-deploy with Terraform, or manually set observability env vars and grant IAM roles to the service account
- 5.View traces in Cloud Console under Trace → Trace explorer; verify BigQuery exports and GCS uploads using the commands in the reference docs
- 6.For ADK-specific setup details, fetch `https://adk.dev/integrations/cloud-trace/index.md`
Use cases
- Debug slow agent invocations by examining Cloud Trace span hierarchies and latency metrics
- Audit all LLM prompts and responses for compliance or quality review in BigQuery
- Build custom analytics dashboards on agent events, tool calls, and conversation outcomes
- Monitor production agents deployed to Agent Runtime, Cloud Run, or GKE with automatic telemetry export
- Troubleshoot state mismatches between SDK-deployed and Terraform-managed Reasoning Engine resources
- Platform engineers deploying agents to production
- DevOps teams managing observability and monitoring infrastructure
- Data analysts building custom dashboards on agent behavior
- Compliance and audit teams tracking LLM interactions
- Developers debugging agent performance and execution flow
google-agents-cli-observability FAQ
Yes, for Agent Runtime deployments with Terraform: run `agents-cli infra single-project` *before* your first `agents-cli deploy`. If you already deployed via SDK, you can either delete and re-deploy with Terraform, or manually set env vars and IAM roles on the existing Reasoning Engine.
Cloud Trace captures execution flow, latency, and errors via OpenTelemetry spans (always on). Prompt-Response Logging captures full GenAI prompts and responses to GCS and BigQuery for auditing and compliance (opt-in, requires infrastructure).
Yes, any OpenTelemetry-instrumented agent can export to third-party platforms. Setup is per-provider; this skill covers the integration patterns and environment variable configuration.
Enable Prompt-Response Logging (requires `agents-cli infra single-project`) to export full prompts and responses to BigQuery. Use log sinks and external tables to query interactions; see `references/cloud-trace-and-logging.md` for details.
Delete the SDK-deployed Reasoning Engine, run `agents-cli infra single-project`, then `agents-cli deploy`. Sessions and in-flight state are lost. Alternatively, keep the SDK instance and manually set env vars and IAM roles.
Full instructions (SKILL.md)
Source of truth, from google/agents-cli.
name: google-agents-cli-observability description: > This skill should be used when the user wants to "set up tracing", "monitor my agent", "configure logging", "add observability", "debug production traffic", or needs guidance on monitoring deployed agents, including ADK (Agent Development Kit) agents. Covers Cloud Trace, prompt-response logging, BigQuery Agent Analytics, third-party integrations (AgentOps, Phoenix, MLflow, etc.), and troubleshooting. Part of the agents-cli skills suite. Do NOT use for deployment setup (use google-agents-cli-deploy) or API code patterns (use google-agents-cli-adk-code). metadata: author: Google license: Apache-2.0 version: 1.7.0 requires: bins: - agents-cli install: "uv tool install google-agents-cli"
Observability Guide
Cloud Trace works out of the box — no infrastructure needed. Prompt-response logging and BigQuery Agent Analytics require Terraform-provisioned infrastructure (service account, GCS bucket, BigQuery dataset). Run
agents-cli infra single-project --project PROJECT_IDto provision these resources. Go projects get the BigQuery telemetry stack too; the GCS completion upload behind prompt-response logging and the BigQuery Agent Analytics plugin are Python only. Seereferences/cloud-trace-and-logging.mdfor details, env vars, and verification commands. If your project isn't scaffolded yet, see/google-agents-cli-scaffoldfirst.
Order of operations for agent_runtime deployments
For deployment_target = agent_runtime, run agents-cli infra single-project before the first agents-cli deploy. The Terraform module owns the entire Reasoning Engine resource (service account, deployment spec, env vars), so applying it after an SDK-based deploy creates a state mismatch Terraform can't reconcile without taking ownership of the whole resource.
Already ran agents-cli deploy? Two options:
- Switch to Terraform-managed — delete the SDK-deployed Reasoning Engine, then run
agents-cli infra single-projectandagents-cli deploy(sessions and in-flight state are lost). - Keep the SDK-deployed instance — skip
infra single-projectand set the observability env vars by re-runningagents-cli deploy --update-env-vars "KEY=VALUE,..."; deploy matches the existing Reasoning Engine by display name and updates it in place, preserving env vars set outside the deploy. You must also grant its service account the telemetry IAM roles the Terraform module would otherwise provision:roles/storage.admin(write completions to the logs bucket),roles/logging.logWriter,roles/cloudtrace.agent, plusroles/bigquery.dataOwner+roles/bigquery.jobUserwhen scaffolded with--bq-analytics. The full set lives indeployment/terraform/single-project/iam.tf(fromapp_sa_roles) andtelemetry.tf. Terraform-managed env vars aren't available in this mode.
Reference Files
| File | Contents |
|---|---|
references/cloud-trace-and-logging.md | Scaffolded project details — Terraform-provisioned resources, environment variables, verification commands, enabling/disabling locally |
references/bigquery-agent-analytics.md | BQ Agent Analytics plugin — enabling, key features, GCS offloading, tool provenance |
references/adk-docs.md | ADK: adk.dev pages to fetch for detail beyond this skill |
references/feedback-mechanism.md | Adding a user-feedback endpoint — request model, structured logging, log sink → BigQuery |
Observability Tiers
Choose the right level of observability based on your needs:
| Tier | What It Does | Scope | Default State | Best For |
|---|---|---|---|---|
| Cloud Trace | Distributed tracing — execution flow, latency, errors via OpenTelemetry spans | All templates, all environments | Always enabled | Debugging latency, understanding agent execution flow |
| Prompt-Response Logging | GenAI interactions exported to GCS, BigQuery, and Cloud Logging | Scaffolded ADK Python projects | Disabled locally, enabled when deployed | Auditing LLM interactions, compliance |
| BigQuery Agent Analytics | Structured agent events (LLM calls, tool use, outcomes) to BigQuery | ADK Python agents with the plugin enabled | Opt-in (--bq-analytics at scaffold time) | Conversational analytics, custom dashboards, LLM-as-judge evals |
| Third-Party Integrations | External observability platforms (AgentOps, Phoenix, MLflow, etc.) | Any OpenTelemetry-instrumented agent | Opt-in, per-provider setup | Team collaboration, specialized visualization, prompt management |
Ask the user which tier(s) they need — they can be combined. Cloud Trace is always on; the others are additive.
Cloud Trace
Scaffolded agents use OpenTelemetry to emit distributed traces. Every agent invocation produces spans that track the full execution flow.
Span Hierarchy
ADK projects. These are ADK's span names; other frameworks emit their own (
generate_contentcomes from the shared google-genai instrumentor either way).
invoke_workflow (top-level run)
└── invoke_agent (one per agent in the chain)
├── call_llm (model request)
│ └── generate_content (underlying GenAI model call)
└── execute_tool (tool execution)
Setup by Deployment Type
| Deployment | Setup |
|---|---|
| Agent Runtime | Automatic — exporters wired at startup, gated on GOOGLE_CLOUD_AGENT_ENGINE_ENABLE_TELEMETRY (set by deploy); exports to Cloud Trace/Logging + Agent Engine console |
| Cloud Run / GKE (scaffolded) | Automatic — exporters wired at startup, exports to Cloud Trace/Logging |
| Cloud Run / GKE (manual) | Configure OpenTelemetry exporter in your app |
| Local dev | Works with agents-cli playground; traces visible in Cloud Console |
Wired at app startup — ADK Python: get_fast_api_app(otel_to_cloud=True) in app/fast_api_app.py; ADK Go: setupObservability() in observability.go; other templates call their own. references/cloud-trace-and-logging.md has the details.
View traces: Cloud Console → Trace → Trace explorer
ADK: for detailed setup instructions (Agent Runtime CLI/SDK, Cloud Run, custom deployments), fetch https://adk.dev/integrations/cloud-trace/index.md.
Prompt-Response Logging
Captures GenAI interactions and exports to GCS (JSONL) and BigQuery (via log sinks + external tables). Content is governed by two independent tiers; the net Terraform-deploy default is full content in GCS/BigQuery, none in traces:
| Tier | Captures | Controlled by | Default (Terraform deploy) |
|---|---|---|---|
| GCS/BigQuery completions | Full prompts/responses (the prompt-response logging feature) | OTEL_INSTRUMENTATION_GENAI_COMPLETION_HOOK=upload + LOGS_BUCKET_NAME | On — full content |
| Trace spans / Cloud Logging events | Span/event content | OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT (plus ADK_CAPTURE_MESSAGE_CONTENT_IN_SPANS=false, ADK Python only) | Off — NO_CONTENT |
The tiers are independent: GCS/BigQuery uploads capture full content whenever their upload vars are set and do not honor OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT, which governs the traces/events tier only.
ADK Python reads it as the experimental-semconv enum:
NO_CONTENT— no content in spans/events (scaffolded default)EVENT_ONLY— content in Cloud Logging eventsSPAN_ONLY/SPAN_AND_EVENT— content in trace spanstrue/false— invalid; fall back toNO_CONTENT
ADK Go reads the same variable as a boolean: "1" or "true" capture content, every other
value — including the enum members above — elides it.
For the full mechanics (semconv opt-in, declarative Terraform config, env-var table, enabling/disabling, verification commands), see references/cloud-trace-and-logging.md. For ADK logging docs (log levels, configuration, debugging), fetch https://adk.dev/observability/logging/index.md.
BigQuery Agent Analytics Plugin
ADK projects. Optional ADK plugin that logs structured agent events to BigQuery. Enable with
--bq-analyticsat scaffold time. Seereferences/bigquery-agent-analytics.mdfor details.
Third-Party Integrations
Many third-party observability platforms can ingest agent telemetry (via OpenTelemetry or custom instrumentation). The table below covers common ones; the full list is larger (see the pointer below it).
| Platform | Key Differentiator | Setup Complexity | Self-Hosted Option |
|---|---|---|---|
| AgentOps | Session replays, 2-line setup, replaces native telemetry | Minimal | No (SaaS) |
| Arize AX | Commercial platform, production monitoring, evaluation dashboards | Low | No (SaaS) |
| Phoenix | Open-source, custom evaluators, experiment testing | Low | Yes |
| MLflow | OTel traces to MLflow Tracking Server, span tree visualization | Medium (needs SQL backend) | Yes |
| Monocle | 1-call setup, VS Code Gantt chart visualizer | Minimal | Yes (local files) |
| Weave | W&B platform, team collaboration, timeline views | Low | No (SaaS) |
| Freeplay | Prompt management + evals + observability in one platform | Low | No (SaaS) |
Ask the user which platform they prefer — present the trade-offs and let them choose. ADK: fetch a platform's setup page at https://adk.dev/integrations/<slug>/index.md (slugs for the table above: agentops, arize-ax, phoenix, mlflow-tracing, monocle, weave, freeplay); ADK has more observability integrations (Datadog, Galileo, LangWatch, Latitude, Future AGI, Respan, Zespan, …) — browse the complete, current list at https://adk.dev/integrations/ (observability topic). On other frameworks the OpenTelemetry-based platforms still work, but follow the platform's own setup docs.
Troubleshooting
| Issue | Solution |
|---|---|
| No traces in Cloud Trace | Verify telemetry setup runs at startup and the SA has the cloudtrace.agent role. ADK Python: fast_api_app.py uses get_fast_api_app(otel_to_cloud=True); ADK Go: observability.go build the exporter manually. Agent Runtime additionally gates this on GOOGLE_CLOUD_AGENT_ENGINE_ENABLE_TELEMETRY. |
| Prompt-response data not appearing | Check LOGS_BUCKET_NAME is set; verify SA has storage.objectCreator on the bucket; check app logs for telemetry setup warnings |
| Content in traces/events (unwanted) | ADK Python: OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=NO_CONTENT keeps content out of spans/events. ADK Go: any value other than 1/true does, so unset it or set false. NOTE: GCS/BigQuery completions still capture full content — to stop that, remove LOGS_BUCKET_NAME/OTEL_INSTRUMENTATION_GENAI_COMPLETION_HOOK (drop the upload block in service.tf) |
| BigQuery Analytics not logging | ADK Python: verify the plugin is configured in app/agent.py; check BQ_ANALYTICS_DATASET_ID env var is set |
| Third-party integration not capturing spans | Check provider-specific env vars (API keys, endpoints); some providers (AgentOps) replace native telemetry |
| Traces missing tool spans | ADK: tool execution spans appear under execute_tool (other frameworks use their own span names) — check trace explorer filters |
| High telemetry costs | Turn content capture off (NO_CONTENT in Python, false in Go); reduce BigQuery retention; disable unused tiers |
Related Skills
/google-agents-cli-deploy— Deployment targets, CI/CD pipelines, and production workflows/google-agents-cli-workflow— Development workflow, coding guidelines, and operational rules/google-agents-cli-adk-code— ADK API quick reference for writing agent code, Python and Go
Related skills
More from google/agents-cli and the wider catalog.

google-agents-cli-publish
Publish and register agents with Gemini Enterprise via Agent-to-Agent or ADK modes.

google-agents-cli-scaffold
Scaffold new agent projects and add deployment, CI/CD, and infrastructure to existing ones.

google-agents-cli-workflow
CLI toolkit for building, evaluating, and deploying agents on Google Cloud with the Agent Development Kit.

google-agents-cli-adk-code
Quick reference for ADK agent code patterns, tools, callbacks, and state management.

mantis-architecture
Synthesizes codebase analysis and learnings into an interlinked Markdown Knowledge Base for architecture documentation.

mantis-review
Independently validates security findings against source code to filter false positives.