使用 Cloud Monitoring 监控数据库
本页介绍了如何使用 Cloud Monitoring 指标来监控与 MongoDB 兼容的 Firestore 数据库。
与 MongoDB 兼容的 Firestore 的 Cloud Monitoring 指标
以下各部分概述了与 MongoDB 兼容的 Firestore 可用的指标。
受监控的资源
Cloud Monitoring 中受监控的资源表示虚拟机、数据库或应用等逻辑实体或物理实体。受监控的资源包含一组独特的指标,可通过信息中心进行探索、报告或用于创建提醒。此外,每个资源还具有一组资源标签,这些标签是键值对,包含有关资源的其他信息。资源标签适用于与资源关联的所有指标。
使用 Cloud Monitoring API,可通过以下资源监控与 MongoDB 兼容的 Firestore 的性能:
| 资源 | 说明 |
firestore.googleapis.com/Database | 提供 project、location 和 database_id 细分的受监控的资源类型。 |
指标
如需查看 Firestore 的完整指标列表,请参阅 Firestore 指标。 以下部分介绍了一些可用的指标。
服务运行时指标
serviceruntime 指标可让您大致了解项目的流量。这些指标适用于大多数 Google Cloud API。consumed_api 受监控的资源类型包含以下常见指标。这些指标每 30 分钟采样一次,因此数据会变得平滑。
对于 serviceruntime 指标,一个重要的资源标签是 method。此标签表示所调用的底层 RPC 方法。您调用的 SDK 方法的名称可能不一定与底层 RPC 方法的名称相同。原因是 SDK 提供高级 API 抽象。不过,在尝试了解应用如何与 Firestore 交互时,务必要了解基于 RPC 方法名称的指标。
如果您需要了解给定 SDK 方法的底层 RPC 方法,请参阅 API 文档。
api/request_latencies
api/request_latencies 指标提供所有已完成请求的延迟时间分布。
Firestore 会记录来自 Firestore 服务组件的指标。延迟时间指标包括从 Firestore 收到请求到 Firestore 完成发送响应之间的时间,包括与存储层的互动。因此,这些指标中不包含客户端与 Firestore 服务之间的往返延迟时间 (rtt)。
文档操作指标
Firestore 会提供读取、写入和删除次数。写入指标可细分“CREATE”和“UPDATE”操作。这些指标与 CRUD 操作相对应。
您可以使用以下指标来了解数据库是读密集型还是写密集型,以及新文档与已删除文档的比率。
document/delete_ops_count:成功删除文档的次数。document/read_ops_count:通过查询或查找成功读取的文档数量。document/write_ops_count:成功写入文档的次数。
结算指标
您可以使用这些指标来了解结算使用情况。这些指标不包括管理员操作(编入索引、导入、导出和批量删除)产生的结算费用。
api/billable_read_units:可结算的读取单位数。 使用情况可按服务名称和 API 方法细分。api/billable_write_units:可结算的写入单位数。 使用情况可按服务名称和 API 方法细分。document/billable_managed_delete_write_units:来自 TTL 等受管理的删除服务的可结算写入单位数。
索引指标
可以将索引写入速率与 document/write_ops_count 指标进行对比,以了解索引扇出。
index/write_count:索引写入次数。
TTL 指标
与 MongoDB 兼容的 Firestore 的 TTL 指标用于监控强制执行的 TTL 政策的效果。
document/ttl_deletion_count:TTL 服务删除的文档总数。document/ttl_expiration_to_deletion_delays:具有 TTL 的文档到期与实际删除之间的间隔时间。
查看预定义的信息中心和创建自定义信息中心
与 MongoDB 兼容的 Firestore 支持使用 Cloud Monitoring 指标的预定义信息中心。 您也可以创建自定义信息中心。
查看数据库使用情况指标
打开 Google Cloud 控制台中的用量信息中心,查看一段时间内的文档读取、写入和删除情况。
访问权限控制
用量信息中心需要 monitoring.timeSeries.list Identity and Access Management (IAM) 权限。项目的 Owner、Editor 和 Viewer 角色拥有此权限。您还可以通过 Cloud Monitoring 角色或自定义角色授予此权限。
数据库用量信息中心
如需查看与 MongoDB 兼容的 Firestore 数据库的使用情况指标,请执行以下操作。
在 Google Cloud 控制台中,前往数据库页面。
从数据库列表中选择所需的数据库。
在导航菜单中,点击用量。
用量信息中心和结算报告
控制台中的 Firestore 使用量信息中心提供了估算的用量。您可以借助这些信息确定用量高峰。不过,信息中心内显示的计费操作信息并不准确。计费用量可能更高。如需监控结算,请参阅结算指标。
如果出现任何差异,请优先参考结算报告,而不是用量信息中心。
导入和导出操作会导致用量信息中心与计费用量之间产生差异。这些操作执行的读写操作不会显示在用量信息中心内。
查看数据库性能指标
Google Cloud 控制台的 Firestore 部分中的监控页面包含预定义的监控信息中心,例如请求延迟时间(P50 和 P99)、响应代码和查询统计信息(P50)。您还可以创建最多一个自定义信息中心。如需访问数据库的监控页面,请按以下步骤操作:
在 Google Cloud 控制台中,打开 Firestore 数据库页面。
从列表中选择一个数据库。
在导航菜单中,点击监控以打开信息中心。
创建自定义 Cloud Monitoring 信息中心
在 Cloud Monitoring 中,您可以利用自定义信息中心以有条理的方式显示与您相关的信息。例如,您可以创建一个信息中心,用于显示生产环境中项目的性能指标和提醒政策。
如需详细了解如何设置自定义信息中心,请参阅管理自定义信息中心和添加信息中心微件。
创建提醒政策
在 Cloud Monitoring 中,您可以创建提醒,以便在指标条件发生变化时收到通知。您可以使用这些提醒在潜在问题影响用户之前收到通知。
如需详细了解如何创建提醒,请参阅创建指标阈值提醒政策。
请看以下示例,其中我们创建了一个延迟时间提醒政策。提醒政策会检查 5 分钟滚动窗口内的 p99 延迟时间。如果 p99 延迟时间持续高于 250 毫秒达 5 分钟,则会触发提醒。
控制台
在 Google Cloud 控制台中,前往 Monitoring 页面,然后选择 notifications 提醒。
选择创建政策。
从已使用的 API 资源中选择请求延迟时间指标。
为 Firestore Native 数据库的
firestore.googleapis.com添加服务过滤条件。点击下一步以配置触发器。
将条件类型选择为阈值。
阈值条件设置为 250 毫秒的阈值。当 p99 延迟时间值在整个滚动窗口期(5 分钟)内保持不变时,系统会触发提醒。
将阈值设置为 250。
点击下一步以配置通知。
设置提醒政策名称,然后点击下一步。
查看提醒配置并点击创建政策。
MQL
您可以使用 Monitoring Query Language (MQL) 查询来实现相同的延迟时间提醒政策。如需查看更多使用 MQL 的示例,请参阅示例 MQL 查询。
fetch consumed_api
| metric 'serviceruntime.googleapis.com/api/request_latencies'
| filter (resource.service == 'firestore.googleapis.com')
| group_by 5m,
[value_request_latencies_percentile:
percentile(value.request_latencies, 99)]
| every 5m
| condition val() > 0.25 's'