监控和保护 Web 应用

发布应用后,您应对其进行监控和保护:

使用 App Hosting 可观测性功能监控您的网站性能

Firebase Studio中的应用概览面板提供了有关应用的关键指标和信息,让您可以使用 App Hosting 的内置可观测性工具监控 Web 应用的性能。网站发布后,您可以点击发布来查看概览。在此面板中,您可以执行以下操作:

  • 点击发布以发布应用的新版本。
  • 通过访问您的应用分享应用链接或直接打开您的应用。
  • 查看过去 7 天的应用性能摘要,包括请求总数和最新发布状态。点击查看详细信息,以便在 Firebase 控制台中访问更多信息。
  • 查看图表,了解您的应用在过去 24 小时内收到的请求数量,并按 HTTP 状态代码分类显示。

如果您关闭了“应用概览”面板,可以随时点击发布重新打开。

如需详细了解如何管理和监控 App Hosting 发布,请参阅管理发布和版本

适用于已部署的功能的 Genkit Monitoring

您可以通过向 AI flow 代码启用遥测来监控 Genkit 功能步骤、输入和输出。借助 Genkit 的遥测功能,您可以监控 AI flow 的性能和用量。这些数据可帮助您确定需要改进的方面、排查问题、优化提示和流程以提高性能和成本效益,以及跟踪 flow 的使用情况。

如需在 Genkit 中设置监控,您需要向 Genkit AI flow 添加遥测数据,然后在 Firebase 控制台中查看结果。

第 1 步:在 Firebase Studio 中向 Genkit flow 代码添加遥测数据

如需在代码中设置监控,请执行以下操作:

  1. 如果您尚未进入 Code 视图,请点击 代码切换图标 切换到代码以打开该视图。

  2. 检查 package.json 以验证已安装的 Genkit 版本。

  3. 打开终端(Ctrl-Shift-C,在 MacOS 上为 Cmd-Shift-C)。

  4. 点击终端并安装与 package.json 文件版本匹配的 Firebase 插件。例如,如果 package.json 中的 Genkit 软件包版本为 1.0.4,您应运行以下命令来安装插件:

    npm i --save @genkit-ai/firebase@1.0.4
  5. 探索器中,展开 src > ai > flows。包含 Genkit flow 的一个或多个 TypeScript 文件会显示在 flows 文件夹中。

  6. 点击其中一个 flow 将其打开。

  7. 在文件的导入部分底部添加以下代码,以导入并启用 FirebaseTelemetry

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

第 2 步:设置权限

Firebase Studio 在配置 Firebase 项目时已为您启用所需的 API,但您仍需为 App Hosting 服务账号提供权限。

如需设置权限,请执行以下操作:

  1. 打开 Google Cloud IAM 控制台,选择您的项目,然后向 App Hosting 服务账号授予以下角色:

    • Monitoring Metric Writer (roles/monitoring.metricWriter)
    • Cloud Trace Agent (roles/cloudtrace.agent)
    • Logs Writer (roles/logging.logWriter)
  2. 将应用重新发布App Hosting

  3. 发布完成后,加载并使用您的应用。五分钟后,您的应用应开始记录遥测数据。

第 3 步:在 Firebase 控制台中监控您的生成式 AI 功能

配置遥测后,Genkit 会记录所有 flow 的请求数、成功率和延迟时间,并且针对每个特定 flow,Genkit 会收集稳定性指标、显示详细图表并记录捕获的跟踪记录。

如需监控通过 Genkit 实现的 AI 功能,请执行以下操作:

  1. 五分钟后,在 Firebase 控制台中打开 Genkit,并查看 Genkit 的提示和回答。

    Genkit 会编译以下稳定性指标

    • 请求总数:您的 flow 收到的请求总数。
    • 成功率:成功处理的请求占总请求的百分比。
    • 第 95 百分位的延迟时间:flow 的第 95 百分位的延迟时间,即处理 95% 的请求所需的时间。
    • token 使用情况:

      • 输入 token:在提示中发送给模型的 token 数量。
      • 输出 token:模型在回答中生成的 token 数。
    • 图片使用情况:

      • 输入图片数:在提示中发送给模型的图片数量。
      • 输出图片数:模型在回答中生成的图片数。

    展开稳定性指标后,将显示详细图表:

    • 随时间变化的请求量。
    • 随时间变化的成功率。
    • 输入 token 数和输出 token 数随时间的变化。
    • 延迟时间(第 95 百分位和第 50 百分位)随时间的变化。

如需详细了解 Genkit,请访问 Genkit

使用 Firebase App Check 保护您的应用

如果您已将 Firebase 或 Google Cloud 服务集成到您的应用中,Firebase App Check 可以防止未经授权的客户端访问您的 Firebase 资源,从而有助于保护应用后端免遭滥用。它可与 Google 服务(包括 Firebase 和 Google Cloud 服务)和您自己的自定义后端搭配使用,以确保资源安全。

我们建议您为公开发布的所有应用添加 App Check,以保护您的后端资源免遭滥用。

本部分将引导您使用 reCAPTCHA EnterpriseFirebase Studio 中为由 App Prototyping agent 创建的 Web 应用设置 App Check,但您可以在实现 Firebase 服务并可以实现自定义提供方的任何应用中设置 App Check。如需了解详情,请前往 Firebase App Check

ReCAPTCHA Enterprise 提供最多 10,000 次免费评估

第 1 步:为您的应用设置 reCAPTCHA Enterprise

  1. 打开 Google Cloud 控制台的 reCAPTCHA Enterprise 部分。

  2. Google Cloud 控制台项目选择器中选择您的 Firebase 项目的名称。

  3. 如果系统提示您启用 reCAPTCHA Enterprise API,请执行此操作。

  4. 点击开始使用,然后为您的 reCAPTCHA 网站密钥添加显示名称

  5. 接受默认的 Web 应用类型密钥。

  6. 点击添加网域,然后添加网域。您需要添加 App Hosting 网域(例如 studio--PROJECT_ID.REGION.hosted.app)以及您与应用搭配使用或计划与应用搭配使用的任何自定义网域。

  7. 点击下一步

  8. 您是否会使用验证保留为未选中状态。

  9. 点击创建密钥

  10. 复制并保存您的密钥 ID,然后继续执行配置App Check

第 2 步:配置 App Check

  1. 打开 Firebase 控制台,然后在导航菜单中依次点击 Build > App Check

  2. 点击开始使用,然后点击应用旁边的注册

  3. 点击展开 ReCAPTCHA,然后粘贴您为 reCAPTCHA Enterprise 生成的密钥 ID。

  4. 点击保存

第 3 步:在代码中添加 App Check

  1. 返回 Firebase Studio,在 Code 视图中,将您生成的网站密钥添加到 .env 文件:

    NEXT_PUBLIC_RECAPTCHA_SITE_KEY=RECAPTCHA_SITE_KEY
    
  2. 如果您尚未将 Firebase 配置保存到 .env,请获取该配置:

    • Firebase 控制台中,打开项目设置,然后在与您的应用对应的部分中找到该设置。

    • Code 视图中的终端中:

      1. 登录 Firebase:firebase auth login
      2. 选择您的项目:firebase use FIREBASE_PROJECT_ID
      3. 获取 Firebase 配置:firebase apps:sdkconfig
  3. 将配置添加到 .env 文件中,使其如下所示:

    NEXT_PUBLIC_FIREBASE_API_KEY=FIREBASE_API_KEY
    NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=FIREBASE_AUTH_DOMAIN
    NEXT_PUBLIC_FIREBASE_PROJECT_ID=FIREBASE_PROJECT_ID
    NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=FIREBASE_STORAGE_BUCKET
    NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=FIREBASE_MESSAGING_SENDER_ID
    NEXT_PUBLIC_FIREBASE_APP_ID=FIREBASE_APP_ID
    NEXT_PUBLIC_RECAPTCHA_SITE_KEY=RECAPTCHA_SITE_KEY
    
  4. App Check 添加到您的应用代码中。您可以让 GeminiApp Check 与 reCAPTCHA Enterprise 添加到您的应用中(请务必指定“reCAPTCHA Enterprise”,并务必仔细检查!),也可以按照初始化 App Check 中的步骤操作。

  5. 将您的网站重新发布到 App Hosting。尝试测试您的 Firebase 功能以生成一些数据。

  6. Firebase 控制台中依次打开 Build > App Check,验证 App Check 是否正在接收请求。

  7. 点击以检查 Firebase 服务。验证请求已到达后,点击强制执行以强制执行 App Check

  8. 针对 Firebase Authentication 重复验证和强制执行。

App Check 注册应用后,如果您希望在 App Check 通常不会归类为有效提供方的环境(例如开发期间的本地环境)或持续集成 (CI) 环境中运行您的应用,可以创建应用的调试 build,该 build 使用 App Check 调试提供方,而不是真正的证明提供方。 如需了解详情,请参阅App Check 与 Web 应用中的调试提供程序搭配使用

后续步骤