本页面介绍了如何使用内置指标、自定义指标和提醒来监控 Vertex AI Agent Engine 中的代理。
概览
您可以使用 Cloud Monitoring 中的 Vertex AI Agent Engine,而无需进行任何额外的设置或配置。系统会自动收集内置代理指标,并在Google Cloud 控制台的 Cloud Monitoring 页面中直观呈现这些指标。
支持的内置指标
系统支持以下代理指标,这些指标与 Vertex AI Agent Engine 受监控的资源 aiplatform.googleapis.com/ReasoningEngine
相关联:
- 请求数
- 请求延迟时间
- 容器 CPU 分配时间
- 容器内存分配时间
如需详细了解指标类型、单位、标签以及延迟时间和采样周期,请参阅 AI Platform 指标的完整列表。
查看代理的指标
您可以在 Google Cloud 控制台中使用 Metrics Explorer 查看代理的内置指标:
如需获得在 Metrics Explorer 中查看指标的权限,请让您的管理员为您授予项目的 Monitoring Viewer 角色 (
roles/monitoring.viewer
)。在 Google Cloud 控制台中前往 Metrics Explorer:
选择您的 Google Cloud 项目。
点击选择指标以打开搜索栏。
在搜索栏中输入 Vertex AI Reasoning Engine,然后点击 Vertex AI Reasoning Engine。
点击 Reasoning_engine 指标类别,然后点击一个指标,例如请求数。
您可以选择设置其他标签过滤条件、聚合元素并调整时间范围。
默认情况下,Metrics Explorer 中用于显示请求数指标的图表会按默认时间间隔对数据点进行对齐,并将数据点绘制为每秒请求数(一种速率指标)。
查询智能体的指标
您还可以通过 Prometheus 查询语言 (PromQL) 或 Cloud Monitoring v3 API 查询指标。PromQL 在指标过滤、汇总和转换方面提供了更多选项,而 Cloud Monitoring API 可让您以编程方式列出和查询所有原始数据点。
使用 PromQL 查询指标
您可以使用 PromQL 按自定义时间间隔对齐和汇总数据点,并将转换后的数据点绘制为绝对请求数(而非每秒请求数)。以下示例按 Agent Engine 实例 ID (RESOURCE_ID
) 和响应代码 (RESPONSE_CODE
) 过滤数据:
sum_over_time(
increase(
aiplatform_googleapis_com:reasoning_engine_request_count{
monitored_resource='aiplatform.googleapis.com/ReasoningEngine',
reasoning_engine_id='RESOURCE_ID',
response_code='RESPONSE_CODE'
}
[10m]
)
[10m:10m]
)
您可以计算标记有特定错误响应代码(例如 500
)的请求数与请求总数的比率(失败请求的百分比),从而查询错误率:
sum_over_time(
sum(
rate(
aiplatform_googleapis_com:reasoning_engine_request_count{
monitored_resource='aiplatform.googleapis.com/ReasoningEngine',
reasoning_engine_id='RESOURCE_ID',
response_code='500'
}
[10m]
)
)
[10m:10m]
)
/
sum_over_time(
sum(
rate(
aiplatform_googleapis_com:reasoning_engine_request_count{
monitored_resource='aiplatform.googleapis.com/ReasoningEngine',
reasoning_engine_id='RESOURCE_ID',
}
[10m]
)
)
[10m:10m]
)
如需了解比率指标的最佳实践和限制,请参阅指标比率简介。如需查看如何为错误率指标设置提醒的示例,请参阅 JSON 格式的示例政策。
使用 Cloud Monitoring API 查询指标
您可以使用 Cloud Monitoring API 执行以下操作:
获取 Vertex AI Agent Engine 受监控的资源定义
列出可用的代理指标定义
查询
request_count
的时序数据
所有代理指标都与代理引擎受监控的资源 aiplatform.googleapis.com/ReasoningEngine
相关联。
您可以通过 API 浏览器、特定于语言的客户端库或命令行调用这些 API。如需了解如何通过 API Explorer 和客户端库读取指标,请参阅文档。以下示例演示了在命令行(更具体地说是 curl
工具)中的用法。
获取 Agent Engine 受监控的资源定义
以下命令使用 projects.monitoredResourceDescriptors
检索受监控的资源的定义,以及可用于过滤的所有可用标签:
gcurl https://monitoring.googleapis.com/v3/projects/PROJECT_ID/monitoredResourceDescriptors/aiplatform.googleapis.com/ReasoningEngine
标签应包含 resource_container
、location
和 reasoning_engine_id
。
列出可用的代理指标定义
以下命令使用 projects.metricDescriptors
检索 Agent Engine 的所有指标和标签过滤条件:
gcurl https://monitoring.googleapis.com/v3/projects/PROJECT_ID/metricDescriptors?filter='metric.type=starts_with("aiplatform.googleapis.com/reasoning_engine")'
结果应包含以下指标的定义及其特定标签:
aiplatform.googleapis.com/reasoning_engine/request_count
aiplatform.googleapis.com/reasoning_engine/request_latencies
aiplatform.googleapis.com/reasoning_engine/cpu/allocation_time
aiplatform.googleapis.com/reasoning_engine/memory/allocation_time
查询 request_count
的时序数据
您可以将 projects.timeSeries.list
与 interval
、filter
和 aggregation
等参数搭配使用,以查询时序数据。
以下示例展示了如何查询特定代理实例在特定时间窗口内的 request_count
指标的原始数据点:
gcurl https://monitoring.googleapis.com/v3/projects/PROJECT_ID/timeSeries?filter='metric.type="aiplatform.googleapis.com/reasoning_engine/request_count"%20AND%20resource.labels.reasoning_engine_id="RESOURCE_ID"&interval.endTime=2025-03-26T11:00:0.0-08:00&interval.startTime=2025-03-26T10:00:0.0-08:00'
替换以下内容:
- PROJECT_ID:您的 Google Cloud 项目 ID。
- RESOURCE_ID:Agent Engine 实例 ID。此步骤并非总是必需的。您可以在同一项目内跨多个 Agent Engine 实例进行查询。
interval.startTime
和interval.endTime
:时间间隔的开始时间(含)和结束时间(不含),采用 RFC 3339 格式。例如,"2025-03-26T11:22:33Z"
表示世界协调时间 (UTC),"2025-03-26T11:22:33-08:00"
表示太平洋标准时间 (PST)。如需查看完整定义和更多示例,请参阅 RFC 3339。
您应该会收到类似如下所示的响应:
{
"timeSeries": [
{
"metric": {
"labels": {
"response_code": "200",
"response_code_class": "2xx"
},
"type": "aiplatform.googleapis.com/reasoning_engine/request_count"
},
"resource": {
"type": "aiplatform.googleapis.com/ReasoningEngine",
"labels": {
"reasoning_engine_id": "RESOURCE_ID",
"location": "LOCATION",
"project_id": "PROJECT_ID"
}
},
"metricKind": "DELTA",
"valueType": "INT64",
"points": [
{
"interval": {
"startTime": "2025-03-26T18:55:27.001Z",
"endTime": "2025-03-26T18:56:27Z"
},
"value": {
"int64Value": "25"
}
},
{
"interval": {
"startTime": "2025-03-26T18:54:27.001Z",
"endTime": "2025-03-26T18:55:27Z"
},
"value": {
"int64Value": "36"
}
}
// ... more data points ...
]
}
// ... potentially more time series with other response codes ...
],
"unit": "1"
}
如需详细了解响应格式,请参阅 projects.timeSeries.list
。
为代理创建自定义指标
如果内置代理指标无法满足您的特定使用场景,您可以定义自定义指标。您可以使用以下方法创建自定义指标:
基于日志的指标
以下步骤演示了如何为示例工作流创建和使用基于日志的指标 (tool_calling_count
),在该工作流中,多个代理调用多个工具,并且您希望统计工具调用次数:
指定您的工具在每次被调用时写入日志条目。例如
"tool-\<tool-id\> invoked by agent-\<agent-id\>"
。通过 Google Cloud 控制台创建新的基于日志的计数器类型指标:
在 Google Cloud 控制台中,前往基于日志的指标页面:
在用户定义的指标部分中,点击创建指标。 此时会显示创建基于日志的指标窗格。
对于指标类型,选择计数器
在详细信息部分中,输入基于日志的指标名称。例如
tool_calling_count
。(可选)输入说明和单位。在过滤条件选择部分,执行以下操作:
在选择项目或日志存储桶下拉列表中,选择项目日志
在构建过滤条件字段中,使用日志记录查询语言输入日志过滤条件。例如:
resource.type="aiplatform.googleapis.com/ReasoningEngine" resource.labels.reasoning_engine_id="RESOURCE_ID" textPayload =~ "tool-\d+ invoked by agent-\d+" -- assuming both tool and agent IDs are numeric
对于标签部分,请点击添加标签按钮,添加两个新标签。
对于第一个标签,请执行以下操作:
在标签名称字段中,输入
tool
。在字段名称字段中,输入
textPayload
。在正则表达式字段中,输入
(tool-\d+) invoked by agent-\d+
。
对于第二个标签,请执行以下操作:
在标签名称字段中,输入
agent
。在字段名称字段中,输入
textPayload
。在正则表达式字段中,输入
tool-\d+ invoked by (agent-\d+)
。
- 点击完成。
点击创建指标。
如需查看
tool_calling_count
指标及其关联的日志,请在 Google Cloud 控制台中执行以下操作:前往 Google Cloud 控制台中的 Metrics Explorer 页面:
点击选择指标以打开搜索栏。
在搜索栏中输入 Vertex AI Reasoning Engine,然后点击 Vertex AI Reasoning Engine。
点击基于日志的指标指标类别,然后点击 logging/user/tool_calling_count。如有必要,请调整时间范围。
(可选)按标签
tool
和agent
过滤。如需获取所有代理的特定工具的总调用次数,请将过滤条件标签
tool
设置为相应工具 ID 的值。如需获取特定代理在所有工具中的总调用次数,请将过滤条件标签
agent
设置为相应代理 ID 的值。
(可选)将求和依据设置为
tool
或agent
,以按不同的工具或客服人员获取细分的总计数。
如需了解如何写入代理日志,请参阅记录代理;如需详细了解基于日志的指标,请参阅基于日志的指标概览。
用户定义的指标
以下步骤演示了如何为示例工作流创建和使用自定义指标 (token_count
),在该工作流中,多个代理调用多个模型,并且您希望计算消耗的令牌总数(假设您跟踪每个调用代理和目标模型自应用启动以来的令牌数量):
通过调用
projects.metricDescriptors.create
并使用以下参数来定义自定义指标类型:name
:网址字符串,例如projects/PROJECT_ID
Request body
:MetricDescriptor
对象:{ "name": "token_count", "description": "Token Consumed by models.", "displayName": "Token Count", "type": "custom.googleapis.com/token_count", "metricKind": "CUMULATIVE", "valueType": "INT64", "unit": "1", "labels": [ { "key": "model", "valueType": "STRING", "description": "Model." }, { "key": "agent", "valueType": "STRING", "description": "Agent." } ], "monitoredResourceTypes": [ "generic_node" ] }
新指标
token_count
的类型为Cumulative
,表示自应用启动以来的令牌总数。如需详细了解Cumulative
指标,请参阅指标种类和类型。标签model
和agent
分别表示目标大语言模型 (LLM) 和调用代理的名称。
您可以在 Metrics Explorer 中找到
token_count
指标:- 前往 Google Cloud 控制台中的 Metrics Explorer 页面:
点击选择指标以打开搜索栏。
在搜索栏中输入通用节点,然后点击自定义指标。
点击令牌数。
通过调用
projects.timeSeries.create
并使用以下参数,将数据点写入新指标:name
:网址字符串,例如projects/PROJECT_ID
Request body
:TimeSeries
对象的列表:{ "timeSeries": [ { "metric": { "type": "custom.googleapis.com/token_count", "labels": { "model": "model-1", "agent": "agent-1" } }, "resource": { "type": "generic_node", "labels": { "project_id": "PROJECT_ID", "node_id": "RESOURCE_ID", "namespace": "", "location": "us-central1" } }, "points": [ { "interval": { "startTime": "2025-03-26T10:00:00-08:00", "endTime": "2025-03-26T10:01:00-08:00" }, "value": { "int64Value": 15 } } ] }, { "metric": { "type": "custom.googleapis.com/token_count", "labels": { "model": "model-1", "agent": "agent-2" } }, "resource": { "type": "generic_node", "labels": { "project_id": "PROJECT_ID", "node_id": "RESOURCE_ID", "namespace": "", "location": "us-central1" } }, "points": [ { "interval": { "startTime": "2025-03-26T10:00:00-08:00", "endTime": "2025-03-26T10:01:00-08:00" }, "value": { "int64Value": 20 } } ] } // ... more time series ... ] }
通过 Cloud Monitoring API 上传数据点后,您可以通过 Google Cloud 控制台查看新指标
token_count
:前往 Google Cloud 控制台中的 Metrics Explorer 页面:
点击选择指标以打开搜索栏。
在搜索栏中输入通用节点,然后点击自定义指标。
点击令牌数量。根据需要调整时间范围,并为
model
或agent
配置标签值。
为代理创建提醒
您可以将指标与提醒结合使用。如需了解详情,请参阅提醒概览。
以下示例展示了如何为 request_latencies
指标创建阈值提醒,以便在延迟时间在指定时长内超过预定义值时收到通知:
前往 Google Cloud 控制台中的提醒页面:
点击创建政策。创建提醒政策页面随即打开。
在政策配置模式部分,选择构建器。
在选择指标下拉菜单中,依次选择
Vertex AI Reasoning Engine
->reasoning_engine
->Request Latency
。在添加过滤条件部分,根据需要配置过滤条件(例如
reasoning_engine_id
、response_code
)。在转换数据部分中,将滚动窗口和滚动窗口函数切换为
5min
和99th percentile
等值(监控 5 分钟对齐周期内的第 99 百分位请求延迟时间)。点击下一步。
在配置提醒触发器部分中,执行以下操作:
在条件类型中,选择阈值。
选择一个提醒触发器,例如任何时序违反。
选择一个阈值位置,例如高于阈值。
输入一个阈值,例如
5000ms
。点击下一步。
在配置通知并最终确定提醒部分,执行以下操作:
选择一个或多个通知渠道。如需了解详情,请参阅管理通知渠道。
(可选)配置通知主题、突发事件自动关闭时长、应用标签、政策标签、严重程度和其他文档。
在为提醒政策命名部分中设置政策名称,例如
latency-99p-alert
。点击创建政策。
如果发生突发事件,请参阅基于指标的提醒政策的突发事件,详细了解如何确认和调查突发事件以及将提醒设为静音。
您可以在 JSON 中的示例政策中找到更多提醒示例。
监控代理的指标
您可以使用 Vertex AI Agent Engine 概览信息中心来监控代理的运行状况和性能。
查看默认信息中心
前往 Google Cloud 控制台中的信息中心页面:
选择您的 Google Cloud 项目。
在我的信息中心窗格中,添加过滤条件
Name:Vertex AI Agent Engine Overview
。点击 Vertex AI Agent Engine 概览以显示默认智能体信息中心。
自定义默认信息中心
默认信息中心仅包含代理内置指标。如需向信息中心添加您自己的自定义指标,请按以下步骤复制并自定义默认信息中心:
点击复制信息中心。在复制信息中心对话框中,点击复制。 系统会打开信息中心副本。您还可以在自定义类别下的我的信息中心窗格中找到信息中心副本。
在信息中心副本中,按以下步骤添加指标:
点击添加 widget。此时会显示添加 widget 侧边栏。
对于数据,选择指标。此时会显示配置 widget 侧边栏。
点击选择指标以打开搜索栏。
如果您的自定义指标是使用基于日志的指标创建的,则:
在搜索栏中输入 Vertex AI Reasoning Engine,然后点击 Vertex AI Reasoning Engine。
点击基于日志的指标指标类别,然后点击一个指标,例如 Logging/user/tool_calling_count。
点击应用。
如果您的自定义指标是使用用户定义的指标创建的:
在搜索栏中输入通用节点,然后点击通用节点。
点击自定义指标指标类别,然后点击一个指标,例如令牌数。
点击应用。
信息中心内会显示一个新图表,其中包含您的自定义指标。
您可以进一步调整信息中心的布局,例如:
按住微件标题,然后将其拖动到同一信息中心内的其他位置,即可移动微件。
按住微件的右下角并调整其大小,即可调整微件的大小。
如需详细了解如何使用 Prometheus 查询语言 (PromQL) 添加指标图表以及如何将指标制成表格,请参阅向自定义信息中心添加图表和表格。
如果您已配置自定义提醒,请参阅在信息中心上显示提醒政策和提醒,将此类提醒添加到信息中心。