监控数据库性能

您可以通过几种不同的方式来监控 Firebase 实时数据库的性能并发现应用中的潜在问题。通过查看应用的传入带宽和传出带宽以及负载量,您还可以大致了解帐单上可能会有哪些费用。此外,如果有些地方看起来不正常,清楚地了解数据库操作也不失为一个有用的问题排查途径。

本页面讨论了实时数据库性能监控。如需了解用量监控,请参阅监控数据库用量

使用实时数据库监控工具

您可以通过几种不同的工具收集有关实时数据库性能的数据,具体取决于所需的细化程度。

使用实时数据库分析器工具

您可以通过实时数据库分析器工具实时掌握对数据库执行的读/写操作的大致情况。该报告包含以下方面的信息:每项操作的速度和载荷大小,以及未编入索引的查询。但是,该报告不包含有关连接开销的历史信息或统计数据,并且不能用于估算结算费用

要详细了解如何使用分析器工具,请参阅分析您的数据库

使用 Firebase 控制台

Firebase 控制台中的用量标签页提供了以下方面的信息:访问数据库的并发连接数、当前存储的数据量、传出带宽(包括协议和加密开销)以及数据库在 1 分钟的时间区间内的负载量。虽然用量标签可让您更精确地大致了解数据库的整体性能,但是您可能无法进行足够深入的分析,来排查潜在的性能问题。

使用 Stackdriver Monitoring

借助 Google Cloud Platform 提供的 Stackdriver Monitoring,您可以使用指标浏览器查看各个性能指标,也可以创建包含图表(显示各种性能指标组合随时间的变化情况)的不同信息中心。实时数据库与 Stackdriver Monitoring 的集成可实现最深层级的细化程度。

如需了解设置 Stackdriver Monitoring 的步骤,请参阅监控数据库用量

如需有关使用特定 Stackdriver 指标找出性能问题的提示,请参阅以下各节。

在 Stackdriver 中监控性能。

如果您遇到性能方面(包括正常运行时间或延迟)的问题,则可能需要使用 Stackdriver 监控以下指标:请注意,所有指标类型的名称前缀均为 firebasedatabase.googleapis.com/

指标名称 说明
数据库负载

io/database_load。使用此指标可以监控在一段时间内处理请求使用了多少可用的数据库带宽。当数据库负载接近可用的总带宽时,就可能会出现性能问题。您还可以查看哪些操作类型使用的负载最多,并相应地进行问题排查。对于超过一分钟才能完成的操作,报告的负载可能会超过 100%。如果一项操作花了数分钟才完成,但操作完成后的报告区间(一分钟)统计了使用的总带宽,那么就会出现这种情况。

因用量超额而停用网络

network/disabled_for_overages。此指标反映了您的实时数据库超出任何带宽或网络限制时可能出现的中断。

因用量超额而停用存储

storage/disabled_for_overages。此指标反映了您的实时数据库超出任何存储限制时可能出现的中断。

综合信息中心里图表中的指标,您就可以挖掘出实用的分析洞见,并掌握总体情况。例如,您可以尝试使用以下指标组合:

  • 操作:使用 io/database_load 指标可以了解每种操作类型使用的数据库总负载量。请确保按类型对 io/database_load 进行分组以针对不同的操作类型进行问题排查。
  • 存储:使用 storage/limitstorage/total_bytes 可监控您的存储利用率(相对于实时数据库存储限制)。您还可以添加 storage/disabled_for_overages 以了解您的应用是否遇到了因存储超限而导致的服务中断。
  • SSL 开销:借助 network/https_requests_count,您可监控您的数据库收到了多少 SSL 连接请求,还可使用 reused_ssl_session 过滤条件筛选出重复使用了现有 SSL 会话票证的请求。您可以根据 network/sent_bytes_countnetwork/sent_payload_and_protocol_bytes_count 衡量此指标,以监控您的应用是否在高效使用 SSL 会话票证。

您也可以通过 Stackdriver Monitoring 设置提醒,根据实时数据库的指标接收通知。例如,您可以选择在 io/database_load 接近某个特定阈值时收到通知。

请参阅通过 Stackdriver Monitoring 提供的实时数据库指标的完整列表

数据库负载的类型

io/database_load 指标还会提供标签,说明是哪种操作类型产生的负载。以下是可能衡量的操作类型:

  • admin:管理操作,例如设置规则和读取项目元数据。
  • auth:通过服务帐号或 Firebase 身份验证对单个客户端进行身份验证。
  • client_management:处理并发连接的添加和移除,包括在移除时运行断开连接操作。
  • get_shallow:使用 shallow=true 从 REST GET 中检索数据。
  • get:处理 REST REST 操作。
  • listen:从关联的客户端获取初始数据以执行 ononce 操作。
  • on_disconnect:对客户端断开连接的操作进行注册。
  • put:处理客户端的 set 操作或 REST PUT 操作。
  • transaction:执行来自有条件的 REST 请求的事务或来自客户端的 操作。
  • update:处理 操作或 REST PATCH 请求。

在 Stackdriver 中监控安全规则

您还可以分析安全规则评估情况。请注意,所有指标类型的名称前缀均为 firebasedatabase.googleapis.com/

指标名称 说明
规则评估 rules/evaluation_count。为响应写入或读取请求而执行的实时数据库规则评估的次数。您可以按请求结果(ALLOW、DENY 或 ERROR)来细分该指标。

根据需要,自定义 Stackdriver 图表以进行规则评估,例如过滤特定的评估结果:ALLOW,DENY 或 ERROR。如需了解如何设置和自定义图表,请参阅监控数据库用量

请参阅通过 Stackdriver Monitoring 提供的实时数据库指标的完整列表