Google Cloud 遥测和日志记录插件

Google Cloud 插件会将 Firebase Genkit 的遥测数据和日志记录数据导出到 Google Cloud 的运维套件

前提条件

如果您想在本地运行使用此插件的 flow,则需要安装 Google Cloud CLI 工具

设置 Google Cloud 账号

此插件需要 Google Cloud 账号(如果您还没有,请注册)和 Google Cloud 项目。

在添加该插件之前,请确保您的项目已启用以下 API:

这些 API 应该会在您的项目的 API 信息中心内列出。

点击此处可详细了解如何启用和停用 API。

配置

如需启用导出到 Google Cloud Tracing、Logging 和 Monitoring 的功能,请导入 googlecloud 软件包并运行 Init()。调用 Init() 后,系统会自动导出您的遥测数据。

import "github.com/firebase/genkit/go/plugins/googlecloud"
if err := googlecloud.Init(
	ctx,
	googlecloud.Config{ProjectID: "your-google-cloud-project"},
); err != nil {
	return err
}

您必须指定要将遥测数据导出到的 Google Cloud 项目。还有一些可选参数:

  • ForceExport:即使在开发环境中运行(例如使用 genkit startgenkit flow:run 时),也要导出遥测数据。这是一种测试集成并在 Google Cloud 中发送首批事件以进行监控的快速方法。

    如果您使用此选项,则还需要在本地提供您的 Cloud 凭据:

    gcloud auth application-default login
    
  • MetricInterval:导出遥测信息的时间间隔(以纳秒为单位)。默认情况下,该值为 60 秒 (60e9 纳秒)。

  • LogLevel:要导出的日志条目的最低严重级别。默认情况下为 slog.LevelInfo

该插件需要您的 Google Cloud 项目凭据。如果您要从 Google Cloud 环境(Cloud Run 等)运行 flow,系统会自动设置凭据。如需在其他环境中运行,您需要设置应用默认凭据

通过 Google Cloud 的运维套件监控生产环境

部署 flow 后,请前往 Google Cloud 的运维套件,然后选择您的项目。

日志和跟踪记录

在侧边菜单中,找到“Logging“,然后点击“Logs Explorer”。

您会看到与已部署的 flow 关联的所有日志,包括 console.log()。任何带有前缀 [genkit] 的日志都是 Genkit 内部日志,其中包含一些可能对调试有用的信息。例如,格式为 Config[...] 的 Genkit 日志包含用于特定 LLM 推理的温度和 topK 值等元数据。格式为 Output[...] 的日志包含 LLM 回答,而 Input[...] 日志包含提示。Cloud Logging 具有强大的 ACL,可对敏感日志进行精细控制。

对于特定日志行,您可以点击展开的菜单 图标并选择“View in trace details”,以找到其各自的跟踪记录。

系统会打开一个跟踪记录预览窗格,您可在其中快速浏览跟踪记录的详细信息。如需查看完整详情,请点击窗格右上角的“在 Trace 中查看”链接。

Cloud Trace 中最突出的导航元素是跟踪记录散点图。该散点图包含在给定时间范围内收集的所有跟踪记录。

点击每个数据点会在散点图下方显示详细信息。

详细视图包含 flow 形状(包括所有步骤)和重要时间信息。Cloud Trace 能够在此视图中交织与给定跟踪记录关联的所有日志。在“日志和事件”下拉菜单中,选择“显示展开的内容”选项。

在生成的视图中,您可以详细检查跟踪记录的上下文中的日志,包括提示和 LLM 回答。

指标

如需查看 Genkit 导出的所有指标,请从侧边菜单中选择“Logging”,然后点击“指标管理”。

指标管理控制台包含一个表格视图,其中包含所有收集的指标,包括与 Cloud Run 及其周围环境相关的指标。点击“工作负载”选项会显示一个包含 Genkit 收集的指标的列表。任何带有前缀 genkit 的指标都是内部 Genkit 指标。

Genkit 会收集多种类别的指标,包括 flow 级指标、操作级指标和生成级指标。每个指标都有几个实用的维度,以便实现强大的过滤和分组功能。

常见的维度包括:

  • flow_name - flow 的顶级名称。
  • flow_path - span 及其父级 span 链,直到根 span。
  • error_code - 如果出现错误,则为相应的错误代码。
  • error_message - 如果出现错误,则为相应的错误消息。
  • model - 模型的名称。
  • temperature - 推理温度
  • topK - 推理 topK
  • topP - 推理 topP

Flow 级指标

名称 维度
genkit/flow/requests flow_name、error_code、error_message
genkit/flow/latency flow_name

操作级指标

名称 维度
genkit/action/requests flow_name、error_code、error_message
genkit/action/latency flow_name

生成级指标

名称 维度
genkit/ai/generate flow_path、model、temperature、topK、topP、error_code、error_message
genkit/ai/generate/input_tokens flow_path、model、temperature、topK、topP
genkit/ai/generate/output_tokens flow_path、model、temperature、topK、topP
genkit/ai/generate/input_characters flow_path、model、temperature、topK、topP
genkit/ai/generate/output_characters flow_path、model、temperature、topK、topP
genkit/ai/generate/input_images flow_path、model、temperature、topK、topP
genkit/ai/generate/output_images flow_path、model、temperature、topK、topP
genkit/ai/generate/latency flow_path、model、temperature、topK、topP、error_code、error_message

您可以通过 Metrics Explorer 直观呈现指标。使用侧边菜单,选择“Logging”,然后点击“Metrics Explorer”

点击“选择指标”下拉菜单,选择“通用节点”“Genkit”和一个指标,以选择指标。

指标的直观呈现取决于其类型(计数器、直方图等)。Metrics Explorer 提供了强大的汇总和查询功能,可帮助您按各种维度绘制指标图表。

遥测数据延迟

Flow 的特定执行的遥测数据可能略有延迟才会显示在 Cloud 的运维套件中。在大多数情况下,此延迟不到 1 分钟。

配额和限制

请务必注意以下几个配额:

费用

Cloud Logging、Cloud Trace 和 Cloud Monitoring 提供宽裕的免费层级。如需查看具体价格,请访问以下链接: