使用日志记录生成 Gemini Code Assist 指标

本文档介绍了如何生成 Gemini Code Assist 指标。例如,您可以生成指标来报告各种 Google Cloud 产品(包括 Cloud Logging、Google Cloud CLI、Cloud Monitoring 和 BigQuery)的每日活跃使用情况或代码建议的接受情况。

准备工作

  • 确保您已在项目中设置 Gemini Code Assist
  • 确保您已在项目中为 Google Cloud 日志启用 Gemini

  • In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

列出唯一身份用户数

以下说明介绍了如何使用 gcloud CLI 列出最近 28 天内 Gemini Code Assist 的唯一身份用户数:

  1. 在 shell 环境中,确保您已将 gcloud CLI 的所有已安装组件更新到最新版本:

    gcloud components update
    
  2. 查看 Gemini Code Assist 用户和使用情况的日志条目:

    gcloud logging read 'resource.type=cloudaicompanion.googleapis.com/Instance labels.product=~"code_assist"' \
    --freshness 28d \
    --project PROJECT_ID \
    --format "csv(timestamp.date('%Y-%m-%d'),labels.user_id)"
    

    PROJECT_ID 替换为您的 Google Cloud 项目 ID。

    您可以使用 Unix 命令 uniq 按天唯一标识用户。

    输出类似于以下内容:

    2024-10-30,user1@company.com
    2024-10-29,user2@company.com
    2024-10-29,user2@company.com
    2024-10-29,user2@company.com
    2024-10-29,user1@company.com
    2024-10-28,user1@company.com
    

创建显示每日使用情况的图表

以下步骤展示了如何使用“监控”功能创建每日使用情况图表,以显示每日活跃 Gemini Code Assist 用户的总数以及他们每天的请求数量。

  1. 使用日志数据创建一个用于记录 Gemini Code Assist 用户数的 Monitoring 指标:

    1. 在 Google Cloud 控制台中,转到 Logs Explorer 页面。

      前往 Logs Explorer

      如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

    2. 在“查询”窗格中,输入以下查询,然后点击运行查询

       resource.type="cloudaicompanion.googleapis.com/Instance" AND labels.product="code_assist" AND jsonPayload.@type="type.googleapis.com/google.cloud.cloudaicompanion.logging.v1.ResponseLog"
      
    3. 在工具栏中,点击操作,然后选择创建指标

      系统随即会显示创建基于日志的指标对话框。

    4. 配置以下指标详细信息:

      • 确保将指标类型设置为计数器
      • 将指标命名为 code_assist_example
      • 确保过滤条件选择设置为指向日志的存储位置(项目存储分区)。

        如需了解如何根据日志数据生成监控指标,请参阅基于日志的指标概览

    5. 点击创建指标

      系统会显示一条成功横幅,说明指标已创建。

    6. 在该成功横幅中,点击在 Metrics Explorer 中查看

      Metrics Explorer 随即打开,并显示预配置的图表。

  2. 将图表保存到信息中心:

    1. 在工具栏中,点击保存图表
    2. 可选:更新图表标题。
    3. 使用信息中心菜单选择现有自定义信息中心或创建新信息中心。
    4. 点击保存图表

使用 BigQuery 分析使用情况

以下步骤展示了如何使用 BigQuery 分析日志数据。

您可以通过以下两种方法在 BigQuery 中分析日志数据:

  • 创建日志接收器,并将日志数据导出到 BigQuery 数据集。
  • 升级存储日志数据的日志存储桶以使用 Log Analytics,然后创建关联的 BigQuery 数据集。

无论采用哪种方法,您都可以使用 SQL 查询和分析日志数据,还可以将这些查询的结果绘制成图表。如果您使用 Log Analytics,则可以将图表保存到自定义信息中心。不过,价格会有所不同。如需了解详情,请参阅 Log Analytics 价格BigQuery 价格

本部分介绍了如何创建日志接收器以将所选日志条目导出到 BigQuery,并提供了示例查询列表。如需详细了解 Log Analytics,请参阅使用 Log Analytics 查询和分析日志以及查询关联的 BigQuery 数据集

创建日志接收器

  1. 在 Google Cloud 控制台中,转到日志路由器页面:

    前往日志路由器

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 选择您要将日志条目路由到的 Google Cloud 项目。
  3. 选择创建接收器
  4. 接收器详情面板中,输入以下详细信息:

    • 对于接收器名称,请为接收器提供标识符。创建接收器后,您无法重命名接收器,但可以将其删除并创建新的接收器。

    • 对于接收器说明,请描述接收器的用途或使用场景。

  5. 接收器目标位置面板中,配置以下详细信息

    • 针对选择接收器服务,选择 BigQuery 数据集
    • 对于选择 BigQuery 数据集,请创建一个新的 BigQuery 数据集并将其命名为 code_assist_bq
  6. 打开选择要包含在接收器中的日志面板,然后在构建包含过滤器字段中输入以下内容:

    resource.type="cloudaicompanion.googleapis.com/Instance" AND labels.product="code_assist"
    
  7. 可选:如需验证您输入的过滤条件是否正确,请选择预览日志。日志浏览器会在新标签页中打开,其中预填充了过滤条件。

  8. 点击创建接收器

授权日志接收器将日志条目写入数据集

如果您对 BigQuery 数据集拥有所有者访问权限,Cloud Logging 会向日志接收器授予写入日志数据的必要权限。

如果您没有“Owner”访问权限,或者您在数据集中没有看到任何条目,则日志接收器可能没有所需的权限。如需解决此失败问题,请按照设置目标位置权限中的说明操作。

查询

您可以使用以下 BigQuery 示例查询,生成用户级和汇总级数据,以了解每天的活跃使用情况和生成的建议。

在使用以下示例查询之前,您必须获取新创建的接收器的完全限定路径。如需获取路径,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 BigQuery 页面。

    转到 BigQuery

  2. 在资源列表中,找到名为 code_assist_bq 的数据集。这些数据是接收器目的地

  3. code_assist_bq_dataset 下方选择“回答”表格,点击 图标,然后点击复制 ID 以生成数据集 ID。请记下该 ID,以便在后续部分中将其用作 GENERATED_BIGQUERY_TABLE 变量。

按天列出具体用户

SELECT DISTINCT labels.user_id as user, DATE(timestamp) as use_date
FROM GENERATED_BIGQUERY_TABLE
ORDER BY use_date

GENERATED_BIGQUERY_TABLE 替换为您在创建接收器的先前步骤中记下的 BigQuery 响应表的完全限定路径。

按天列出汇总用户数

SELECT COUNT(DISTINCT labels.user_id) as total_users, DATE(timestamp) as use_date
FROM GENERATED_BIGQUERY_TABLE
GROUP BY use_date
ORDER BY use_date

按用户列出每天的个别请求

SELECT COUNT(*), DATE(timestamp) as use_date, labels.user_id as user
FROM GENERATED_BIGQUERY_TABLE
GROUP BY use_date, user
ORDER BY use_date

按日期列出每日汇总请求数

SELECT COUNT(*), DATE(timestamp) as use_date
FROM GENERATED_BIGQUERY_TABLE
GROUP BY use_date
ORDER BY use_date

后续步骤