RUM
RUM(Real User Monitoring)从真实用户浏览器采集页面性能、JavaScript 错误、网络请求和关键交互,反映实验室环境难以覆盖的设备、网络与地域差异。

埋点与监控
埋点是在页面访问、交互或业务流程中记录事件,侧重回答“用户做了什么”;监控持续观察程序运行状态,侧重回答“系统是否正常、用户体验如何”。二者可以共享采集与上报能力,通过页面、会话和版本等上下文关联分析。
- 产品角度:了解访问入口、用户行为和关键流程转化,判断功能是否满足需求。
- 技术角度:发现性能瓶颈与异常,评估影响范围,验证发布后的体验变化。
- 经营角度:结合访问、留存和业务结果,评估投入产出,为资源分配提供依据。
采集内容
基本信息
为事件附带必要上下文,便于按时间、页面和用户环境分析问题:
- 时间:事件发生时间,用于还原行为顺序和分析趋势。
- 页面:URL、路由、来源页面和访问入口。
- 用户与会话:经适当处理的用户标识、匿名访客标识和会话标识。
- 环境:浏览器、操作系统、设备型号、网络类型及应用版本;按实际可获取的信息采集。
- 地域:可结合服务端接收到的 IP 推导粗粒度地域;按需处理,避免不必要地保留原始 IP。
行为与业务数据
- PV、UV 和访问次数,观察流量规模及访问频率。
- 访问来源与渠道,了解用户通过什么入口进入;营销渠道参数参见 Google Analytics / UTM Parameters。
- 页面停留时长,区分页面打开时长与实际可见、活跃时长。
- 页面访问、路由切换、点击、搜索、提交等事件,以及登录、支付等关键业务结果。
性能监控
- 按地域、设备、浏览器和网络条件分析首屏体验,避免只看整体平均值。
- 关注白屏时间、内容呈现时间、Core Web Vitals 和关键交互耗时;白屏、首屏完成应先约定测量起止点。
- 记录静态资源加载耗时,定位图片、脚本和样式等资源的加载瓶颈。
- 观察 Fetch/XHR 成功率、延迟,并关联后端 Trace ID。
异常监控
- JavaScript 运行时异常与未处理的 Promise 拒绝。
- 脚本、图片和 CSS 等资源加载失败。
- 请求失败、超时和关键业务流程失败。
CSS 资源加载失败与样式显示异常需要区分:布局错位、遮挡等视觉问题通常不会抛出 JavaScript 异常,需要结合视觉回归测试或页面检查发现。
采集时机
- 页面进入:记录页面访问、入口与初始上下文;单页应用也要覆盖路由切换,并避免首次进入重复上报。
- 事件触发:在用户交互或业务结果发生时记录事件。按钮点击与提交成功应分别记录,避免把操作意图当作业务完成。
- 页面离开或切到后台:汇总停留时长等数据。页面可能被直接关闭或进程终止,不能假设离开事件一定触发;重要事件应及时上报,时长统计也应考虑页面可见性变化。
访问指标
统计前统一时间范围、访客识别方式、会话划分和去重规则,避免不同报表使用不同口径。
| 指标 | 含义 | 统计注意事项 |
|---|---|---|
| UV(Unique Visitor,独立访客数) | 指定时间范围内去重后的访客数量 | 例如按天统计时,同一访客当天多次访问只计一个 UV;浏览器或账号标识不一定对应一个自然人,跨设备、清除 Cookie 等会影响结果。 |
| PV(Page View,页面浏览量) | 页面被浏览的累计次数 | 同一页面多次访问可累计;普通按钮点击不等于一次 PV,单页应用需明确哪些路由切换计为页面浏览。 |
| VV(Visit View,访问次数) | 按约定的会话规则划分的访问总次数 | 同一访客一天可产生多次访问;应明确会话超时与重开规则,不能仅依赖关闭所有页面判定访问结束。 |
例如,同一访客上午浏览 3 个页面,下午又浏览 2 个页面:按天统计且能识别为同一访客时,UV 为 1、PV 为 5;若两段行为按会话规则属于两次访问,则 VV 为 2。
性能指标
- FCP(First Contentful Paint):页面首次绘制文本、图片等内容的时间点。
- TTI(Time To Interactive):页面达到可交互状态的时间指标。
- TTFB(Time To First Byte):浏览器发起请求到接收到第一个字节的时间。
- LCP(Largest Contentful Paint):视口内最大内容元素的绘制时间,用于衡量主要内容的加载体验。
- CLS(Cumulative Layout Shift):衡量页面意外布局偏移的分数。
隐私与成本
采集前明确用户同意、数据用途、保留期和地域要求。URL、Query、表单、Header、用户标识和错误上下文必须脱敏;使用采样、聚合和会话上限控制成本。
工具
RUM 与 APM 通过 Trace ID 和版本关联后,才能从用户错误定位到具体后端调用和发布变更。