Genkit 监控:问题排查

我在 Firebase Genkit Monitoring 中看不到轨迹和/或指标

  1. 确保已为底层 GCP 项目启用以下 API:
  2. 确保在 Cloud IAM 中将以下角色应用于运行代码的服务账号(或已作为插件选项的一部分配置的服务账号)。
    • Monitoring Metric Writer (roles/monitoring.metricWriter)
    • Cloud Trace Agent (roles/cloudtrace.agent)
    • Logs Writer (roles/logging.logWriter)
  3. 检查应用日志,看看是否有写入 Cloud Logging、Cloud Trace 和/或 Cloud Monitoring 的错误。在 Firebase Functions 和 Cloud Run 等 GCP 基础架构中,即使遥测配置有误,Cloud Logging Agent 也会自动提取写入 stdout/stderr 的日志,以便您在 Cloud Logging 控制台中诊断问题。

  4. 在本地调试:

    启用开发者导出功能:

    enableFirebaseTelemetry({
      forceDevExport: true
    });
    

    如需使用个人用户凭据进行测试,请使用 [gcloud CLI] 向 Google Cloud 进行身份验证。这样做有助于诊断已启用/已停用的 API,但不会测试 gcloud auth application-default login。

    或者,您也可以通过模拟服务账号来测试类似生产环境的访问权限。您必须将 roles/iam. serviceAccountTokenCreator IAM 角色应用于您的用户账号,才能模拟服务账号:

    gcloud auth application-default login --impersonate-service-account <SERVICE_ACCT_EMAIL>
    

    如需了解详情,请参阅 ADC 文档。

Firebase Functions / Cloud Run 中的遥测数据上传可靠性

当 Genkit 托管在 Google Cloud Run(包括适用于 Firebase 的 Cloud Functions)中时,由于容器会切换到“空闲”生命周期状态,因此遥测数据上传的可靠性可能会降低。如果更高的可靠性对您来说很重要,不妨考虑在 Google Cloud 控制台中将CPU 分配更改为始终分配