监控用量

本页介绍了如何监控 Firestore 使用量并发现应用中的潜在问题。

用量信息中心

使用 Google Cloud 控制台和 Firebase 控制台中的用量信息中心来查看一段时间内的文档读取、写入和删除情况。

访问权限控制

使用情况信息中心需要 monitoring.timeSeries.list IAM 权限。项目的 Owner、Editor 和 Viewer 角色拥有此权限。您还可以通过 Cloud Monitoring 角色自定义角色授予此权限。

数据库用量信息中心

如需查看 Firestore 数据库的用量指标,请打开 Google Cloud 控制台中的数据库用量页面。

  1. 在 Google Cloud 控制台中,转到数据库页面。

    前往“数据库”

  2. 从数据库列表中选择所需的数据库。

  3. 在导航菜单中,点击用量

  4. 点击该页面上显示的消息中的链接,以查看您的数据库用量。

    Google Cloud 控制台中的 Firestore 数据库用量信息中心。

汇总用量信息中心

如果您的项目有多个 Firestore 数据库,则可以在 Google Cloud 控制台或 Firebase 控制台中查看汇总的用量指标。 项目级使用信息中心会汇总所有原生模式 Firestore 数据库的使用指标。此信息中心不包含 Datastore 模式 Firestore 数据库的使用情况。

Google Cloud 控制台

在 Google Cloud 控制台中,前往项目用量页面。

打开 Google Cloud 项目用量页面

项目用量信息中心会显示一段时间内的文档操作,如下所示:

Google Cloud 控制台中的 Firestore 项目使用情况信息中心。

Firebase 控制台

转到 Firestore 使用情况页面(Firebase 控制台)

Firebase 控制台中的 Firestore 使用情况信息中心。

使用量信息中心和结算报告

Firebase 和 Cloud Console 中的 Firestore 使用量信息中心提供了估算的使用量。您可以借助这些信息确定使用量高峰。不过,信息中心内显示的计费操作信息并不准确。计费用量可能更高。如果出现任何差异,请优先参考结算报告,而不是用量信息中心。

导致用量信息中心与计费的使用量之间产生差异的操作包括:

  • 导入和导出操作。这些操作执行的读写操作不会显示在用量信息中心内。
  • 免运维的仅验证写入操作。此类写入仅验证文档存在与否对计费读取操作产生影响,但它们在写入用量信息中心内会分别显示为“UPDATE_NOOP”和“DELETE_NOOP”。
  • 免运维的写入操作。此类操作不会导致数据库更改,例如,不更改字段值的更新或对已删除文档执行的写入可能会在用量信息中心内显示为“UPDATE_NOOP”或“DELETE_NOOP”。虽然它们显示为“NOOP”,但仍计入计费操作。
  • 收拢的写入操作。如果快速连续对同一文档执行多次写入操作,用量信息中心可能会将多项写入操作收拢在一起,并将其计为 1 次。对用量计费时,系统仍会单独计入每次写入操作。

    用量信息中心也针对服务器时间戳、数字增量和数组联合操作等字段转换收拢写入操作。对于字段转换,用量信息中心可能会将多项操作计为一次操作。

  • 未返回结果的查询。未返回结果的查询会产生一次读取操作的费用。此用量会被计费,而不会在用量信息中心内显示。
  • 已读取的索引条目中读取操作。此用量会被计费,而不会在用量信息中心内显示。例如,聚合查询会针对已读取的索引条目进行结算,但此用量不会显示在用量信息中心内。

删除操作的用量信息中心不会捕获存留时间 (TTL) 政策执行的自动失效操作。请参阅 Cloud Monitoring 中的 TTL 指标。

安全规则使用情况

此外,Firebase 控制台还提供安全规则评估信息中心,这是一种实用的服务,可让您对规则调用一目了然。如果您觉得此信息中心中的内容不够详细,可以参阅 Cloud Monitoring 中的详细分析。

转到“规则”

Firebase 控制台中的 Firestore 规则监控信息中心。

Cloud Monitoring 指标

Cloud Monitoring 会从 Google Cloud 产品中收集指标、事件和元数据。Firestore 控制台中的使用情况信息中心会报告相同的指标数据。要设置自定义信息中心和使用情况提醒,请使用 Cloud Monitoring。

Cloud Monitoring 包括以下 Firestore 指标:

指标名称 说明
文档读取次数

成功读取文档的次数。您可以按以下读取类型来细分该指标:LOOKUP 或 QUERY。

此指标不包括来自托管式导出或批量删除操作的读取操作。

文档写入次数

成功写入文档的次数。您可以按以下写入类型来细分该指标:CREATE 或 UPDATE。

此指标不包括来自代管式导入服务的写入操作。

文档删除次数 成功删除文档的次数。
活跃连接数

与数据库建立的活跃连接数。

每个活跃的移动 SDK 和 Web SDK 都会保持一个连接,该连接可在多个快照监听器之间共享。服务器客户端库会为每个快照监听器创建一个连接。

快照监听器数

跨所有活跃连接的快照监听器数量。

存留时间删除计数

存留时间 (TTL) 政策而删除的文档总数。

存留时间到期到删除延迟

根据存留时间 (TTL) 政策,文档在到期与实际删除之间的间隔时间。

实时更新用量

可使用“活跃连接数”和“快照监听器数”指标来衡量您的实时更新用量。

假设某个用户在手机上打开了您的应用,随后将该应用连接到 Firestore 并订阅 10 个查询。此时,您的指标会增加 1 个活跃连接和 10 个快照侦听器。

采样率

系统每分钟都会对 Firestore 指标进行一次采样,但更新信息最多可能需要 4 分钟才会显示在信息中心内。

延迟时间指标

后端延迟指标可通过常见的 Google Cloud firestore 指标提供。

例如,您可以在 Cloud 控制台的 Metrics Explorer 视图中找到 p50 延迟时间的图表。

设置 Cloud Monitoring 信息中心

如需查看预定义信息中心或设置信息中心,请参阅使用监控信息中心

后续步骤