Genkit Monitoring 使用入门

本快速入门指南介绍了如何为已部署的 Genkit 功能设置 Firebase Genkit Monitoring,以便您收集和查看实时遥测数据。借助 Firebase Genkit Monitoring,您可以了解 Genkit 功能在生产环境中的表现。

Firebase Genkit Monitoring 的关键功能包括:

  • 查看 Genkit 功能延迟时间、错误和令牌用量等定量指标。
  • 检查轨迹,查看 Genkit 的功能步骤、输入和输出,以便调试和改进质量。
  • 导出生产轨迹以在 Genkit 中运行评估。

设置 Genkit Monitoring 需要在代码库和 Google Cloud 控制台中完成任务。

准备工作

  1. 如果尚未创建,请创建一个 Firebase 项目。

    Firebase 控制台中,点击添加项目,然后按照屏幕上的说明操作。您可以创建新项目,也可以将 Firebase 服务添加到现有的 Google Cloud 项目。

  2. 确保您的项目采用的是 Blaze 定价方案

    Genkit Monitoring 依赖于写入 Google Cloud Logging、Metrics 和 Trace 这些付费服务的遥测数据。如需查看价格详情并了解免费层级的相关限制,请查看 Google Cloud Observability 价格页面。

  3. 按照入门指南编写 Genkit 功能,然后使用以下某个指南准备代码以进行部署:

    1. 使用 Cloud Functions for Firebase 部署数据流
    2. 使用 Cloud Run 部署数据流
    3. 将流程部署到任何 Node.js 平台

第 1 步:添加 Firebase 插件

在项目中安装 @genkit-ai/firebase 插件:

npm i save @genkit-ai/firebase

enableFirebaseTelemetry 导入您的 Genkit 配置文件(用于初始化 genkit(...) 的文件),并调用它:

import { enableFirebaseTelemetry } from '@genkit-ai/firebase';

enableFirebaseTelemetry();

第 2 步:启用所需的 API

确保已为您的 GCP 项目启用以下 API:

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

第 3 步:设置权限

Firebase 插件需要使用服务账号对 Google Cloud Logging、Metrics 和 Trace 服务进行身份验证。

Google Cloud IAM 控制台中,向配置为在您的代码中运行代码的任意服务账号授予以下角色。对于 Cloud Functions for Firebase 和/或 Cloud Run,该账号通常是默认的计算服务账号。

  • Monitoring Metric Writer (roles/monitoring.metricWriter)
  • Cloud Trace Agent (roles/cloudtrace.agent)
  • Logs Writer (roles/logging.logWriter)

第 4 步:(可选)在本地测试配置

在部署之前,您可以在本地运行 Genkit 代码,以确认系统是否正在收集遥测数据,以及这些数据是否可在 Genkit 监控信息中心内查看。

  1. 在 Genkit 代码中,将 forceDevExport 设置为 true,以便从本地环境发送遥测数据。

  2. 使用您的服务账号进行身份验证并测试您的配置。

    使用 Google Cloud CLI 工具,使用服务账号进行身份验证:

    gcloud auth application-default login --impersonate-service-account <SERVICE_ACCT_EMAIL>
    
  3. 运行并调用 Genkit 功能,然后在 Genkit 监控信息中心中查看指标。最长可能需要 5 分钟才能收集到第一个指标。您可以在遥测配置中设置 metricExportIntervalMillis 来缩短此延迟时间。

  4. 如果 Genkit Monitoring 信息中心中未显示指标,请参阅问题排查指南,了解调试步骤。

第 5 步。重新构建并部署代码

重新构建、部署和调用您的 Genkit 功能,以开始收集数据。Genkit Monitoring 收到您的指标后,您可以访问 Genkit Monitoring 信息中心查看这些指标