Google Cloud 插件会将 Firebase Genkit 的遥测数据和日志记录数据导出到 Google Cloud 的运维套件,该套件为 Firebase AI 监控信息中心(不公开预览版)提供支持。
安装
npm i --save @genkit-ai/google-cloud
如果您想在本地运行使用此插件的流程,还需要安装 Google Cloud CLI 工具。
设置 Google Cloud 账号
此插件需要 Google Cloud 账号(如果您还没有,请注册)和 Google Cloud 项目。
在添加此插件之前,请确保您的项目已启用以下 API:
这些 API 应该会在您的项目的 API 信息中心内列出。
点击此处可详细了解如何启用和停用 API。
Genkit 配置
如需启用导出到 Google Cloud Tracing、Logging 和 Monitoring 的功能,只需调用 enableGoogleCloudTelemetry()
即可:
import { enableGoogleCloudTelemetry } from '@genkit-ai/google-cloud';
enableGoogleCloudTelemetry();
在生产环境中运行时,系统会自动导出您的遥测数据。
身份验证
该插件需要 Google Cloud 项目 ID 和您的 Google Cloud 项目凭据。如果您要从 Google Cloud 环境(Cloud Functions、Cloud Run 等)运行 flow,系统会自动设置项目 ID 和凭据。
应用默认凭据
如需在其他环境中运行,您需要将 GCLOUD_PROJECT
环境变量设置为您的 Google Cloud 项目,并使用 gcloud
工具进行身份验证:
gcloud auth application-default login
如需了解详情,请参阅应用默认凭据文档。
服务账号凭据
如果您使用的是服务账号,并且在 Google Cloud 环境之外运行,则可以将凭据设置为环境变量。按照此处的说明设置 Google Cloud 服务账号密钥。
下载密钥文件后,您可以通过两种方式指定凭据:使用 GOOGLE_APPLICATION_CREDENTIALS
环境变量指定文件位置,或直接将 JSON 文件的内容复制到环境变量 GCLOUD_SERVICE_ACCOUNT_CREDS
。
文件路径:
GOOGLE_APPLICATION_CREDENTIALS = "path/to/your/key/file"
直接复制:
GCLOUD_SERVICE_ACCOUNT_CREDS='{
"type": "service_account",
"project_id": "your-project-id",
"private_key_id": "your-private-key-id",
"private_key": "your-private-key",
"client_email": "your-client-email",
"client_id": "your-client-id",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "your-cert-url"
}'
插件配置
enableGoogleCloudTelemetry()
函数接受一个可选的配置对象,用于配置 OpenTelemetry NodeSDK 实例。
import { AlwaysOnSampler } from '@opentelemetry/sdk-trace-base';
enableGoogleCloudTelemetry({
forceDevExport: false, // Set this to true to export telemetry for local runs
sampler: new AlwaysOnSampler(),
autoInstrumentation: true,
autoInstrumentationConfig: {
'@opentelemetry/instrumentation-fs': { enabled: false },
'@opentelemetry/instrumentation-dns': { enabled: false },
'@opentelemetry/instrumentation-net': { enabled: false },
},
metricExportIntervalMillis: 5_000,
});
配置对象可让您对遥测数据导出的各个方面进行精细控制,如下所述。
凭据
允许使用 google-auth 库中的 JWTInput 直接指定凭据。
采样器
如果导出所有轨迹不切实际,OpenTelemetry 允许对轨迹进行采样。
有四种预配置的采样器:
- AlwaysOnSampler - 对所有轨迹进行采样
- AlwaysOffSampler - 不采样任何轨迹
- ParentBased - 基于父级 span 的样本
- TraceIdRatioBased - 按可配置的百分比对轨迹进行采样
autoInstrumentation 和 autoInstrumentationConfig
启用自动插桩后,OpenTelemetry 便可从第三方库捕获遥测数据,而无需修改代码。
metricExportIntervalMillis
此字段指定指标导出间隔(以毫秒为单位)。
metricExportTimeoutMillis
此字段指定指标导出的超时时间(以毫秒为单位)。
disableMetrics
提供替换项,用于停用指标导出,同时仍导出轨迹和日志。
disableTraces
提供一个替换项,用于停用导出轨迹,同时仍导出指标和日志。
disableLoggingIO
提供了用于停用收集输入和输出日志的替换项。
forceDevExport
此选项会在 Genkit 在 dev
环境(例如本地)中运行时强制其导出遥测数据和日志数据。
测试您的集成
配置该插件时,请使用 forceDevExport: true
为本地运行启用遥测数据导出。前往 Google Cloud 日志、Metrics 或 Trace Explorer 查看遥测数据。或者,您也可以前往 Firebase AI Monitoring 信息中心(非公开预览版),以 AI 惯用方式查看遥测数据。