监控代理

本页面介绍了如何使用内置指标、自定义指标和提醒在 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 查看代理内置指标:

  1. 如需获得在 Metrics Explorer 中查看指标的权限,请让您的管理员为您授予项目的 Monitoring Viewer 角色 (roles/monitoring.viewer)。

  2. 在 Google Cloud 控制台中前往 Metrics Explorer

    转到 Metrics Explorer

  3. 选择您的 Google Cloud 项目。

  4. 点击选择一个指标以打开搜索栏。

  5. 在搜索栏中输入 Vertex AI Agent Builder Reasoning Engine,然后点击 Vertex AI Agent Builder Reasoning Engine

  6. 点击 Reasoning_engine 指标类别,然后点击一个指标,例如请求数

  7. 您可以选择设置其他标签过滤条件、汇总元素并调整时间范围。

默认情况下,Metrics Explorer 中针对请求数指标的图表会按默认时间间隔校准数据点,并以每秒请求数(一种速率指标)的形式绘制数据点。

对于基于智能体开发套件的代理,您还可以在 Google Cloud 控制台中使用 Vertex AI Agent Engine 信息中心查看代理的指标。

查询代理的指标

您还可以通过 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 的时序数据

所有代理指标都与 Agent Engine 受监控的资源 aiplatform.googleapis.com/ReasoningEngine 相关联。

您可以通过 APIs Explorer、特定于语言的客户端库或命令行调用这些 API。如需了解如何通过 API Explorer 和客户端库读取指标,请参阅相应的文档。以下示例演示了在命令行(更具体地说是 curl 工具)中的用法。

获取 Agent Engine 受监控的资源定义

以下命令使用 projects.monitoredResourceDescriptors 检索受监控的资源定义,以及可用于过滤的所有可用标签:

gcurl https://monitoring.googleapis.com/v3/projects/PROJECT_ID/monitoredResourceDescriptors/aiplatform.googleapis.com/ReasoningEngine

标签应包含 resource_containerlocationreasoning_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.listintervalfilteraggregation 等参数搭配使用,以查询时序数据。

以下示例展示了如何查询特定代理实例在特定时间窗口内的 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.startTimeinterval.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

为代理创建自定义指标

如果内置代理指标无法满足您的特定应用场景,您可以定义自定义指标。您可以使用以下方法创建自定义指标:

  • 基于日志的指标:观察大量日志条目中的趋势和模式。

  • 用户定义的指标:不是由 Google Cloud定义的指标,例如用于捕获特定于应用的数据或客户端系统数据的指标。

基于日志的指标

以下步骤演示了如何为示例工作流创建和使用基于日志的指标 (tool_calling_count),在该工作流中,多个代理会调用多个工具,而您希望统计工具调用次数:

  1. 指定您的工具在每次被调用时写入日志条目。例如 "tool-\<tool-id\> invoked by agent-\<agent-id\>"

  2. 通过 Google Cloud 控制台创建新的基于日志的计数器类型指标:

    1. 在 Google Cloud 控制台中前往基于日志的指标页面:

      转到“基于日志的指标”

    2. 用户定义的指标部分中,点击创建指标。此时会显示创建基于日志的指标窗格。

    3. 对于指标类型,选择计数器

    4. 详细信息部分中,输入基于日志的指标名称。例如 tool_calling_count。(可选)输入说明单位

    5. 过滤器选择部分中,执行以下操作:

      1. 选择项目或日志存储桶下拉列表中,选择项目日志

      2. 构建过滤条件字段中,使用日志记录查询语言输入日志过滤条件。例如:

        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
        
    6. 对于标签部分,通过点击添加标签按钮来添加两个新标签。

      1. 对于第一个标签,执行以下操作:

        1. 标签名称字段中,输入 tool

        2. 字段名称字段中,输入 textPayload

        3. 正则表达式字段中,输入 (tool-\d+) invoked by agent-\d+

      2. 对于第二个标签,执行以下操作:

        1. 标签名称字段中,输入 agent

        2. 字段名称字段中,输入 textPayload

        3. 正则表达式字段中,输入 tool-\d+ invoked by (agent-\d+)

      1. 点击完成
    7. 点击创建指标

  3. 如需查看 tool_calling_count 指标及其关联的日志,请在 Google Cloud 控制台中执行以下操作:

    1. 在 Google Cloud 控制台中前往 Metrics Explorer 页面:

      转到 Metrics Explorer

    2. 点击选择一个指标以打开搜索栏。

    3. 在搜索栏中输入 Vertex AI Agent Builder Reasoning Engine,然后点击 Vertex AI Agent Builder Reasoning Engine

    4. 点击基于日志的指标指标类别,然后点击 logging/user/tool_calling_count。如有必要,请调整时间范围。

    5. (可选)按标签 toolagent 进行过滤。

      • 如需获取所有代理对特定工具的总调用次数,请将过滤条件标签 tool 设置为相应工具 ID 的值。

      • 如需获取特定代理对所有工具的总调用次数,请将过滤条件标签 agent 设置为相应代理 ID 的值。

      (可选)将求和依据设置为 toolagent,以按不同的工具或代理获取细分的总计数。

如需了解如何写入代理日志,请参阅对代理进行日志记录;如需详细了解基于日志的指标,请参阅基于日志的指标概览

用户定义的指标

以下步骤演示了如何为示例工作流创建和使用自定义指标 (token_count),在该工作流中,多个代理调用多个模型,而您希望计算使用的 token 总数(假设您针对每个调用代理和目标模型跟踪自应用启动以来的 token 数量):

  1. 通过调用 projects.metricDescriptors.create 并使用以下参数来定义自定义指标类型:

    • name:网址字符串,例如 projects/PROJECT_ID

    • Request bodyMetricDescriptor 对象:

      {
        "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 种类创建的,这表示自应用启动以来的 token 总数。如需详细了解 Cumulative 指标,请参阅指标种类和类型。标签 modelagent 分别表示目标大语言模型 (LLM) 和调用代理的名称。

    1. 您可以在 Metrics Explorer 中找到 token_count 指标:

      1. 在 Google Cloud 控制台中前往 Metrics Explorer 页面:

      转到 Metrics Explorer

      1. 点击选择一个指标以打开搜索栏。

      2. 在搜索栏中输入通用节点,然后点击自定义指标

      3. 点击 Token 计数

  2. 通过调用 projects.timeSeries.create 并使用以下参数,将数据点写入新指标:

    • name:网址字符串,例如 projects/PROJECT_ID

    • Request bodyTimeSeries 对象的列表:

      {
        "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 ...
        ]
      }
      
  3. 通过 Cloud Monitoring API 上传数据点后,您可以通过 Google Cloud 控制台查看新指标 token_count

    1. 在 Google Cloud 控制台中前往 Metrics Explorer 页面:

      转到 Metrics Explorer

    2. 点击选择一个指标以打开搜索栏。

    3. 在搜索栏中输入通用节点,然后点击自定义指标

    4. 点击 Token 计数。根据需要调整时间范围并为 modelagent 配置标签值。

为代理创建提醒

您可以将指标与提醒结合使用。如需了解详情,请参阅提醒概览

以下示例展示了如何为 request_latencies 指标创建阈值提醒,以便在延迟时间在指定时长内超过预定义值时收到通知:

  1. 在 Google Cloud 控制台中前往提醒页面:

    转到提醒

  2. 点击创建政策创建提醒政策页面随即打开。

    1. 对于政策配置模式,选择构建器

    2. 选择一个指标下拉菜单中,依次选择 Vertex AI Reasoning Engine -> reasoning_engine -> Request Latency

    3. 添加过滤条件部分中,视需要配置过滤条件(例如 reasoning_engine_idresponse_code)。

    4. 转换数据部分中,将滚动窗口滚动窗口函数切换为 5min99th percentile 等值(监控请求延迟时间在 5 分钟校准时间段内的第 99 百分位)。

    5. 点击下一步

  3. 配置提醒触发器部分中,执行以下操作:

    1. 条件类型选择阈值

    2. 选择一个提醒触发器,例如任何时序违反

    3. 选择一个阈值位置,例如高于阈值

    4. 输入一个阈值,例如 5000ms

    5. 点击下一步

  4. 配置通知并最终确定提醒部分中,执行以下操作:

    1. 选择一个或多个通知渠道。如需了解详情,请参阅管理通知渠道

    2. (可选)配置通知主题、突发事件自动关闭时长、应用标签、政策标签、严重级别和其他文档。

    3. 为提醒政策命名部分中设置政策名称,例如 latency-99p-alert

    4. 点击创建政策

如果发生突发事件,请参阅基于指标的提醒政策的突发事件,详细了解如何确认和调查突发事件以及忽略提醒。

您可以在 JSON 格式的政策示例中找到更多提醒示例。

监控代理的指标

您可以使用 Vertex AI Agent Engine 概览信息中心来监控代理的运行健康状况和性能。

查看默认信息中心

  1. 在 Google Cloud 控制台中前往信息中心页面:

    转到“信息中心”

  2. 选择您的 Google Cloud 项目。

  3. 我的信息中心窗格中,添加过滤条件 Name:Vertex AI Agent Engine Overview

  4. 点击 Vertex AI Agent Engine 概览以显示默认代理信息中心。

自定义默认信息中心

默认信息中心仅包含代理内置指标。如需向信息中心添加您自己的自定义指标,请按以下步骤复制并自定义默认信息中心:

  1. 打开默认信息中心

  2. 点击复制信息中心。在复制信息中心对话框中,点击复制。系统会打开信息中心副本。您还可以在自定义类别下(我的信息中心窗格中)找到信息中心副本。

  3. 在信息中心副本中,按以下步骤添加指标:

    1. 点击添加 widget。系统会显示添加 widget 侧边栏。

    2. 对于数据,选择指标。系统会显示配置 widget 侧边栏。

    3. 点击选择一个指标以打开搜索栏。

    4. 如果您的自定义指标是使用基于日志的指标创建的:

      1. 在搜索栏中输入 Vertex AI Agent Builder Reasoning Engine,然后点击 Vertex AI Agent Builder Reasoning Engine

      2. 点击基于日志的指标指标类别,然后点击一个指标,例如 Logging/user/tool_calling_count

      3. 点击应用

    5. 如果您的自定义指标是使用用户定义的指标创建的:

      1. 在搜索栏中输入通用节点,然后点击通用节点

      2. 点击自定义指标指标类别,然后点击一个指标,例如 Token 计数

      3. 点击应用

    6. 信息中心内会出现一个新图表,其中显示您的自定义指标。

  4. 您可以进一步调整信息中心的布局,例如:

    1. 按住 widget 标题,然后将其拖动到同一信息中心内的其他位置,即可移动 widget。

    2. 按住 widget 的右下角并调整其大小,即可调整 widget 的大小。

如需详细了解如何使用 Prometheus 查询语言 (PromQL) 添加指标图表以及如何将指标制成表格,请参阅向自定义信息中心添加图表和表

如果您已配置自定义提醒,请参阅在信息中心上显示提醒政策和提醒,将此类提醒添加到信息中心。