如果因代码更改或网络请求而使应用的性能下降,可使用 Performance Monitoring 提醒来通知项目成员。
您可以为应用设置提醒并进行自定义,用于在事件性能超出设定的阈值时通知您。
哪些情况会触发提醒?
当应用的指标超出您在 Firebase 控制台中为指定的百分位(如果适用)定义的阈值时,系统就会触发提醒。仅在您的应用使用实时兼容的 SDK 版本时,系统才会触发提醒。
应用启动时长
如果您为“应用启动时长”配置了提醒,则只要满足以下所有条件,系统就会触发提醒:
- Firebase 在过去一小时内记录了应用最新版本的至少
100 个 。_app_start
跟踪记录的样本 - 在过去一小时内,对于配置的百分位,
_app_start
跟踪记录的时长超过了应用定义的阈值。 - 在应用的最新版本中,同一阈值之前未引发过任何提醒。
自定义代码跟踪记录
如果您为自定义代码跟踪记录指标配置了提醒,则只要满足以下所有条件,系统就会触发提醒:
- Firebase 在过去一小时内记录了应用最新版本的至少
100 个自定义代码跟踪记录的样本 。 - 在过去一小时内,对于配置的百分位,跟踪记录的时长超过了应用定义的阈值。
- (仅适用于 iOS+ 和 Android)在应用的最新版本中,同一阈值之前未引发过任何提醒。
- (仅适用于 Web)在过去
3 天 内,同一阈值之前未引发过任何提醒。
网络请求
如果您为网络请求指标配置了提醒,则只要满足以下所有条件,系统就会触发提醒:
- Firebase 在过去一小时内记录了应用的所有版本中至少
100 个与网址格式匹配的样本 。 - 在过去一小时内,指标的聚合值超出了定义的阈值:
- 响应时间:对于配置的百分位,聚合值超过了设定的阈值
- 成功率(仅限 iOS+/Android):所有用户的聚合值低于设定的阈值
- 在过去
3 天 内,同一阈值之前未引发过任何提醒。
屏幕呈现
如果您为屏幕呈现指标配置了提醒,则只要满足以下所有条件,系统就会触发提醒:
- Firebase 在过去一小时内记录了应用最新版本的至少
100 个屏幕呈现的样本 。 - 在过去一小时内,指标的聚合值超出了定义的阈值:
- 冻结的帧:聚合值超过设定的阈值
- 慢帧:聚合值超过设定的阈值
- 在应用的最新版本中,同一阈值之前未引发过任何提醒。
网页加载次数
如果您为网页加载指标配置了提醒,则只要满足以下所有条件,系统就会触发提醒:
- Firebase 在过去一小时内记录了应用的至少
100 个网页加载的样本 。 - 在过去一小时内,对于配置的百分位,指标的聚合值超过了定义的阈值:
- First Input Delay:对于配置的百分位,聚合值超过了设定的阈值
- First Contentful Paint:对于配置的百分位,聚合值超过了设定的阈值
- 首次渲染:对于配置的百分位,聚合值超过了设定的阈值
- 在过去
3 天 内,同一阈值之前未引发过任何提醒。
详细了解如何配置提醒、默认百分位以及为特定类型的跟踪记录和指标设置提醒的最佳实践。
系统不会针对其他性能指标或 Firebase 与 Slack、Jira 和 PagerDuty 的内置集成触发 Performance Monitoring 提醒。
接收提醒
接收默认提醒
默认情况下,Firebase 可以通过电子邮件发送 Performance Monitoring 提醒。
如需通过此默认机制接收 Performance Monitoring 提醒,您必须拥有 firebaseperformance.config.update
权限。默认情况下,以下角色拥有这项必需的权限:
提醒及其设置适用于整个项目。这意味着,默认情况下,拥有接收提醒所需权限的每个项目成员(非电子邮件群组)都将在系统触发性能提醒时收到电子邮件通知。
为自己的账号开启/关闭提醒
对于您自己的账号,您可以开启/关闭 Performance Monitoring 提醒,而不会影响项目的其他成员。请注意,您仍需要拥有接收提醒所需的权限。
如需开启或关闭 Performance Monitoring 提醒,请按以下步骤操作:
- 在 Firebase 控制台的右上角,前往
。 “Firebase 提醒” - 然后,前往
,为 Performance Monitoring 提醒设定您的账号偏好设置。 “设置”
设置发送到第三方服务的高级提醒
您还可以使用 Cloud Functions for Firebase 将 Performance Monitoring 提醒发送到团队的首选通知渠道。例如,您可以编写一个函数来捕获有关应用启动太慢的提醒事件,并将提醒信息发布到第三方服务(如 Discord、Slack 或 Jira)。
如需使用 Cloud Functions for Firebase 设置高级提醒功能,请按以下步骤操作:
设置 Cloud Functions for Firebase,您需完成以下任务:
- 为 Node.js 或 Python 设置开发环境。
- 安装并登录 Firebase CLI。
- 使用 Firebase CLI 初始化 Cloud Functions for Firebase。
编写并部署一个函数,该函数会从 Performance Monitoring 捕获提醒事件并处理事件载荷(例如,在 Discord 上的消息中发布提醒信息)。
如需了解您可以捕获的所有性能提醒事件,请参阅 Performance Monitoring 提醒参考文档。
自动移除无效提醒
Performance Monitoring 会验证提醒,以确保数据有效并且提醒处于活跃使用状态。如果满足以下任一条件,则提醒会被视为有效:
- 提醒是为 Performance Monitoring 在过去 90 天内收到过其数据的资源 ID 创建的。
- 提醒是最近为自定义网址格式创建的。创建自定义网址格式并设置提醒后,您可以在 90 天内发送该格式的数据。如果您在 90 天内未发送任何数据,则 Performance Monitoring 会移除该提醒。如需详细了解自定义网址格式,请参阅使用自定义网址格式来汇总数据。
如果不满足以上任一条件,则 Performance Monitoring 会移除提醒。
配置提醒
如需配置 Performance Monitoring 提醒,您必须拥有 firebaseperformance.config.update
权限。默认情况下,以下角色拥有这项必需的权限:Firebase Performance Admin、Firebase Quality Admin、Firebase Admin、Project Owner 或 Project Editor。
将最新的 Performance Monitoring SDK 添加到您的应用(如果您尚未执行此操作)。如需了解详情,请参阅适用于 Web、Android、Apple 和 Flutter 平台的入门指南。
在每个已注册的应用中,请使用“跟踪记录”表或信息中心报告卡片为您要监控的每个指标配置提醒。每个应用可具有不同的提醒集,每个提醒具有不同的阈值(或者根本没有提醒)。
在“跟踪记录”表中配置提醒
转到 Firebase 控制台中的 Performance Monitoring“信息中心”标签页,然后选择您要为其配置提醒的应用。
向下滚动到屏幕底部的“跟踪记录”表。
选择您要设置提醒的跟踪类型的标签页,然后找到相应的行。
打开该行最右侧的溢出菜单 (
),然后选择提醒设置。按照屏幕上的说明为应用设置提醒阈值和百分位(如果适用),或者开启/关闭提醒。 Android 和 iOS 的默认百分位为第 90 百分位,Web 的默认百分位为第 75 百分位。如需详细了解默认百分位,请参阅在信息中心内跟踪关键指标。
在信息中心报告卡片中配置提醒
转到 Firebase 控制台中的 Performance Monitoring“信息中心”标签页,然后选择您要为其配置提醒的应用。
在“报告卡片”标签页中,找到您要为其配置提醒的指标卡片。
在所需的指标卡片中,打开溢出菜单 (
),然后选择提醒设置。按照屏幕上的说明为应用设置提醒阈值和百分位(如果适用),或者开启/关闭提醒。 Android 和 iOS 的默认百分位为第 90 百分位,Web 的默认百分位为第 75 百分位。如需详细了解默认百分位,请参阅在信息中心内跟踪关键指标。
设置性能提醒的最佳实践
网络请求
Firebase 会在网址格式下汇总类似网络请求的数据,这些格式可以是以下任一项:
为自定义网址格式设置提醒
我们建议您为已配置的所有自定义网址格式设置提醒。由于 Firebase 首先会尝试将请求与自定义网址格式匹配,因此类似的请求会以更加一致的方式映射到同一网址格式。这样一来,针对自定义网址格式的提醒对您的团队来说会更有意义,也更有效,因为您已确定该特定请求格式对您的应用十分重要。
为自动网址格式设置提醒
为自动网址格式设置提醒时,请确保自动网址格式会稳定几天。请注意,自动网址格式可能会随时间而变化,并且新的网址格式不会沿用相应的提醒配置。这可能会导致您关注的格式不正确或缺少提醒。您还可以考虑创建自定义网址格式,以确保此格式的稳定性。
网页加载
如需了解有关衡量 Web 指标的推荐阈值,请参阅核心网页指标文档。
屏幕呈现
为了确保提供最佳的应用体验,用户会话不应包含慢帧和冻结的帧。Performance Monitoring 建议您为大于 1% 的冻结的帧设置提醒,以及为超过 5% 的慢帧设置提醒。您会发现,这些值在性能提醒配置期间显示为默认设置。如需详细了解慢帧或冻结的帧过多现象以及其他应用性能最佳实践,请参阅 Google Play 指南。