Performance Monitoring 使用跟踪记录来收集有关应用中受监控进程的数据。跟踪记录是一种报告,包含两个时间点之间在应用中捕获的数据。
对于所有应用类型,Performance Monitoring 都会自动收集应用发出的每个网络请求的跟踪记录,称为 HTTP/HTTPS 网络请求跟踪记录。这些跟踪记录会收集从应用向服务端点发出请求到来自该端点的响应完成相隔的时长指标。对于应用向其发出请求的任何目标端点,Performance Monitoring 会捕获以下几项指标:
响应时间 - 从请求发出到收到完整响应相隔的时长
响应载荷大小 - 应用下载的网络载荷的字节数
请求载荷大小 - 应用上传的网络载荷的字节数
成功率 - 成功响应(响应代码在 100 - 399 范围内)次数相对于总响应次数的百分比
您可以在“性能”信息中心底部的跟踪记录表中的“网络请求”子标签页中查看这些跟踪记录中的数据(在本页下文中详细了解如何使用控制台)。
Performance Monitoring 会自动收集使用以下网络库的网络请求的指标:
OkHttp3,具体是指 HTTP 客户端 v3.x.x
Java 的 URLConnection,具体是指 HttpURLConnection 和 HttpsURLConnection
-
如果您使用此库,请务必阅读 Apache HTTP 客户端移除和 Apache HTTP 客户端弃用说明。
自定义网络请求数据汇总
除了开箱即用型工具以及网络请求的数据汇总,Performance Monitoring 还支持以下选项:
- 手动对网络请求跟踪记录进行插桩 (instrument):开箱即用的监控功能会监控应用的大多数网络请求,但该功能可能不会报告某些请求,或者您可能会使用其他库来发出网络请求。在这些情况下,您可以使用 Performance Monitoring API 手动对自定义网络请求跟踪记录进行插桩。
- 在自定义网址格式下汇总数据:如果 Firebase 通过其自动网址格式匹配功能不能捕获某些特定网址,您可以创建自定义网址格式在一段时间内监控特定的一组网址。
- 自定义成功率的计算方式:有时,某些 API 端点收到错误代码是预期行为,或者应用中已经处理了错误代码。在这些情况下,您可以配置成功率的计算方式,更准确地监控应用的网络调用的成功率。
在网址格式下汇总数据
Firebase Performance Monitoring 会自动汇总相似网络请求的数据,帮助您了解自己的网络请求性能的趋势。
Firebase 会检查每个网络请求的网址是否与某个网址格式匹配。如果请求网址与某个网址格式匹配,则 Firebase 会自动将该请求的数据汇总到此网址格式下。Firebase 会在 Firebase 控制台的“性能”信息中心内的“网络”标签页中显示网址格式及其汇总数据。
什么是网址格式?
网址格式包含一个网域以及一个可与网址路径匹配的格式,例如:example.com/*/animals/**
。
网址格式可包含以下路径段:
- 纯文本 - 与精确的字符串匹配
*
- 与单个路径段中的任何字符串匹配**
- 与任意路径后缀匹配
网址格式可以是以下两者之一:
例如,以下任何一个网址请求都可能与网址格式 example.com/*/animals/**
匹配。
example.com/singapore/animals
example.com/australia/animals/spiders
example.com/australia/animals/marsupials/koala.png
网址格式的网域还可以包含 *
作为其第一个片段,例如:*.example.com/*/fruits/**
。
Firebase 将每个请求仅映射到一个网址格式。如果您配置了任何自定义网址格式,Firebase 首先会尝试将请求网址与这些格式匹配。如果 Firebase 找不到可匹配的自定义网址格式,则会将请求网址与最具代表性的自动网址格式匹配。如需详细了解自动网址格式和自定义网址格式,请参阅以下部分。
自动网址格式
在未进行任何配置的情况下,Performance Monitoring 会尝试将应用的请求与自动网址格式匹配,以反映应用的最新使用行为。
自动网址格式的匹配方式
Firebase 会将每个请求与派生自应用所发送请求的较具代表性自动网址格式相匹配。不过请注意,Firebase 首先会尝试将请求网址与配置的自定义网址格式相匹配。
以下基本示例演示了 Firebase 如何尝试将请求与您的应用的最具代表性自动网址格式相匹配。
您的应用向如下所示的网址发送了许多请求:
example.com/germany/animals/bears
example.com/germany/animals/birds
example.com/germany/cars
Firebase 确定
example.com/germany/**
是您的应用的常见请求格式,并将它添加为您项目中的自动网址格式。对于任何要与此网址格式匹配的新请求,Firebase 会在自动网址格式
example.com/germany/**
下汇总请求的数据。一周后,应用的大部分请求都发送到
example.com/germany/animals/bears
和example.com/germany/animals/birds
。因此,Firebase 会派生出更具代表性的网址格式example.com/germany/animals/**
。对于任何要与此新网址格式匹配的新请求,Firebase 只会在新网址格式下汇总请求的数据。Firebase 会继续在
example.com/germany/**
下汇总发送到example.com/germany/cars
的请求的数据。但在接下来的几周内,发送到
example.com/germany/animals/bears
和example.com/germany/animals/birds
的应用请求大幅减少。Firebase 确定example.com/germany/animals/**
不能代表您应用的最新使用行为,因此 Firebase 将这两种请求重新与example.com/germany/**
匹配。Firebase 不会在
example.com/germany/animals/**
下汇总任何新的请求数据,因为该格式不再是最具代表性的自动网址格式。
由于自动网址格式匹配是动态的,因此请注意以下事项:
过往请求中的匹配项和汇总数据不会受到新网址格式的影响。Firebase 不会追溯性地重新汇总请求数据。
只有未来的请求会受到新网址格式的影响。Firebase 会将每个新请求映射到最具代表性的自动网址格式。不过请注意,Firebase 首先会尝试将请求网址与配置的自定义网址格式相匹配。
查看自动网址格式及其数据
Firebase 在跟踪记录表(位于 Firebase 控制台底部的“性能”信息中心中)的“网络请求”子标签页中显示所有网址格式及其汇总数据。
您可能会看到带有未分类标签的网址格式。这些格式是“宽泛的”自动网址格式,Firebase 可在这些格式下汇总与任何更具体的网址格式不匹配的请求数据。
如果在某个网址格式下汇总的数据的数据保留期结束,Firebase 就会从该网址格式中删除这些数据。如果在某个自动网址格式下汇总的所有数据都已过期,Firebase 就会从 Firebase 控制台中删除该网址格式。
自定义网址格式
您可以创建自定义网址格式来监控 Firebase 使用其派生的自动网址格式匹配未捕获到的具体网址格式。例如,您可以使用自定义网址格式对特定网址进行问题排查或在一段时间内监控特定的一组网址。
如需了解详情,请参阅创建自定义网址格式。
跟踪、查看和过滤性能数据
如需查看实时性能数据,请确保您的应用使用与实时数据处理功能兼容的 Performance Monitoring SDK 版本。详细了解实时性能数据。
在信息中心内跟踪特定指标
如需了解关键指标的趋势如何,请将这些指标添加到“性能”信息中心顶部的指标板中。您可以通过查看逐周变化情况来快速识别回归问题,或者确认近期的代码更改是否正在改善性能。
![Firebase Performance Monitoring 信息中心内的指标板的图像](https://firebase.google.cn/static/docs/perf-mon/images/perf-mon-metrics-board.png?authuser=0000&hl=sk)
如需将指标添加到指标板,请按以下步骤操作:
- 前往 Firebase 控制台中的“性能”信息中心。
- 点击空白指标卡片,然后选择要添加到指标板的现有指标。
- 在填充了信息的指标卡片上点击 可查看更多选项,例如替换或移除指标。
该指标板以图表形式以及数值百分比变化的形式显示一段时间内收集的指标数据。
详细了解如何使用信息中心。
查看跟踪记录及其数据
如需查看您的跟踪记录,请转到 Firebase 控制台中的“性能”信息中心,向下滚动到跟踪记录表,然后点击相应的子标签页。该表会针对每个跟踪记录显示一些热门指标,您甚至可以按特定指标的百分比变化对该列表进行排序。
Performance Monitoring 在 Firebase 控制台中提供了一个问题排查页面,其中会突出显示指标变化,以便您轻松快速地解决性能问题并最大限度地降低对应用和用户的影响。在了解到可能存在性能问题时(例如在以下情况下),您可以使用该问题排查页面:
- 您在信息中心选择了相关指标,并注意到较大的增量。
- 在跟踪记录表中,您通过排序在顶部显示最大的增量,并且看到显著的百分比变化。
- 您收到一条向您通知性能问题的电子邮件提醒。
您可以通过以下方式访问该问题排查页面:
- 在指标信息中心内,点击查看指标详情按钮。
- 在任意指标卡片上,选择
。该问题排查页面会显示有关所选指标的信息。 => 查看详情 - 在跟踪记录表中,点击跟踪记录名称或与该跟踪记录关联的行中的任意指标值。
- 在电子邮件提醒中,点击立即调查。
点击跟踪记录表中的跟踪记录名称后,您可以深入了解感兴趣的指标。点击
![按属性过滤 Firebase Performance Monitoring 数据的图像](https://firebase.google.cn/static/docs/perf-mon/images/perf-mon-filter-by-attribute_native-1.png?authuser=0000&hl=sk)
- 按“应用版本”过滤可查看有关过去版本或最新版本的数据
- 按“设备”过滤可了解旧设备处理应用的方式
- 按“国家/地区”过滤可确保您的数据库位置不会影响特定区域
详细了解如何查看跟踪记录的数据。
后续步骤
详细了解如何使用属性来检查性能数据。
详细了解如何在 Firebase 控制台中跟踪性能问题。
针对会降低应用性能的网络请求设置提醒。例如,如果特定网址格式的响应时间超过您设置的阈值,那么您可以为您的团队配置电子邮件提醒。
- 查看用户会话的详细报告,通过该报告您可以在同一个会话期间收集的其他跟踪记录的时间轴上下文中查看特定跟踪记录。