获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

监控数据库性能

有几种不同的方法可以监控 Firebase 实时数据库的性能并发现应用中的潜在问题。查看您的应用程序的传入和传出带宽和负载也可以让您了解账单上的预期内容。此外,如果出现问题,清楚地了解数据库的操作情况可能是一种有用的故障排除工具。

本页讨论实时数据库性能监控。有关使用情况监控,请参阅监控数据库使用情况

使用实时数据库监控工具

您可以通过几种不同的工具收集有关实时数据库性能的数据,具体取决于您需要的粒度级别。

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

实时数据库分析器工具提供了对数据库读/写操作的实时概览。该报告包括有关每个操作的速度和负载大小的信息,以及未索引的查询。但是,它不包括历史信息或有关连接开销的任何统计数据,并且不应用于估算计费成本

要了解有关使用分析器工具的更多信息,请参阅分析您的数据库

使用 Firebase 控制台

Firebase 控制台中的“使用情况”选项卡提供有关数据库的同时连接、存储的数据量、传出带宽(包括协议和加密开销)以及 1 分钟间隔内的数据库负载的信息。虽然“使用情况”选项卡可以让您更准确地了解数据库的整体性能,但您可能无法深入挖掘以解决潜在的性能问题。

使用云监控

借助 Google Cloud 的 Cloud Monitoring,您可以使用 Metrics Explorer 查看各个性能指标,或使用图表创建不同的仪表板,这些图表随时间推移显示性能指标的各种组合。实时数据库与 Cloud Monitoring 的集成提供了最深层次的粒度。

监控数据库使用情况中描述了设置 Cloud Monitoring 的步骤。

有关使用特定 Cloud Monitoring 指标发现性能问题的提示,请参阅以下部分。

在云监控中监控性能

如果您遇到性能问题,包括正常运行时间或延迟,您可能需要使用 Cloud Monitoring 来监控以下指标。请注意,所有指标类型名称都以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 会话票证。

您还可以通过 Cloud Monitoring 设置警报并接收基于实时数据库指标的通知。例如,您可以选择在您的io/database_load接近某个阈值时接收通知。

查看通过 Cloud Monitoring 提供的实时数据库指标的完整列表

数据库负载类型

io/database_load指标还提供了导致负载的操作类型的标签。以下是可能测量的操作类型:

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

云监控监控安全规则

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

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

根据需要为规则评估定制 Cloud Monitoring 图表,例如通过过滤特定评估结果、ALLOW、DENY 或 ERROR。 Monitor Database Usage中介绍了设置和自定义图表。

查看通过 Cloud Monitoring 提供的实时数据库指标的完整列表