跳转到主要内容
真实用户监控(RUM)记录 Web 与移动端用户体验,并将前端遥测与后端可观测性关联。

数据如何流动

1

创建应用

应用是发送数据的网站或 App。它自带一个只能向它写入事件的 Client Token。
2

发送事件

Browser SDK 与 Flutter SDK 把 JSON 事件发送到同一个端点。没有 SDK 的客户端用 HTTP 请求发送同样的事件。
3

探索数据

MoleSignal 检查每个事件,补充位置、浏览器和设备,写入 RUM 数据流,并从视图派生会话。在探索中搜索这些数据。
两个端点都使用应用的 Client Token。RUM 的全部端点见 RUM API。

数据模型

每种事件类型都有自己的普通 Logs 数据流,Schema 固定。会话由视图派生。 视图和会话会随变化再次上报。探索页的每一行、每次查询看到的都是视图或会话的最新版本。SQL 里的 rum_views_latest 和 rum_sessions_latest 是只含这个版本的数据流(见查询)。

概览

打开 用户体验,首先看到的是 概览。它一次只看一个应用,在一个环境或全部环境里,所看时间范围内的情况。一句话说清有多少次会话、来自多少位用户、其中有多少会话没有错误;不发送 Web Vitals 的 App,改为统计没有崩溃的会话和用户。下面是浏览器应用的三项 Core Web Vitals,各画在它的评分刻度上(良好、待改进、差),标记停在视图的第 75 百分位。点一项,用它打开性能。 再往下是浏览最多的页面(App 是屏幕):浏览量、每项指标的第 75 百分位,以及遇到错误的视图占比;会话来源的地图和会话最多的国家;会话用的浏览器、操作系统和设备类型;以及用户最受挫的元素,和它上面的操作多数是哪一种。表格的一行、一根柱都会打开探索,列出它所统计的行。 概览页头有 在大盘中打开,它会打开应用所属平台的内置 RUM 仪表盘,并选好页面当前的应用和环境。 这些数字由 /api/v1/rum/aggregate 对每个匹配的行统计得出。统计耗时过长的卡片会说明原因,其他卡片不受影响。会话的国家来自 IP 地理位置数据库,所以不随事件保存位置的应用没有地图。

错误

错误 把应用的错误按 issue 列出:相似的错误归并成一个 issue,有状态(待处理、调查中、回归、已解决、已忽略)、团队和处理人,以及何时、在哪些版本出现过。已解决的 issue 在更新的版本再现时,自动标为回归。每个 issue 在抽屉里显示出现趋势、出现在哪里、还原后的堆栈、样本会话和受影响用户。详见 RUM 错误与 issue。

性能

性能 说明浏览器应用的页面对打开它们的人表现如何。一句话说清 LCP、INP、CLS 在第 75 百分位处在什么位置,每项用它评级的颜色,首次内容绘制和首字节时间排在旁边。图表按时间跟着所选的指标,每项指标一根条把浏览分成良好、待改进和差,表格列出页面(或浏览器、国家、版本)和各自的指标。点一行,抽屉里说明这项指标由什么构成、哪些元素决定了它、哪几次浏览最差。另有两个视图,资源 和 长任务,说明页面加载了什么、什么阻塞了它们,浏览器的视图则先打开它的页面是怎样加载的。详见 RUM 性能。

受挫

受挫 说明是什么让使用应用的人受挫。一句话说清多少比例的会话出现了受挫信号(浏览器里是狂点、死点和错误点击,App 里是连续点按和点按出错),以及每种信号有多少个操作、分布在多少个会话里。表格按触及的会话数列出元素、页面、版本或浏览器。点一行,面板里是受影响的会话随时间的变化、信号、版本和页面,以及最近的会话,每个都可以从信号前 5 秒开始回放。详见 RUM 受挫信号。

分析

分析 用三个视图回答人们在一次会话里做了什么。漏斗 数出按顺序做完一串页面和操作的会话,给出走完每一步的比例、耗时,也可以按浏览器、系统、设备类型、版本或国家分组。路径 跟踪会话在某个页面之后(或之前)打开了哪些页面,按访问最多的页面分列。留存 数出某天或某周首次出现的用户,以及他们在之后各个周期里再次出现的比例。页面打开时看最近 7 天。详见 RUM 分析。

告警

告警规则可以监控应用的一项指标:错误、无崩溃会话、出现受挫的会话占比、请求失败、第 75 百分位的 Core Web Vitals,以及新问题和回归的问题。规则读取指标的方式与这些页面相同,所以它监控的数字就是页面显示的数字。可以收窄到环境、页面和版本。详见 RUM 告警。 概览、错误、性能和受挫页里,说明页面范围的那一行末尾的 告警 会数出这个应用正在发生的事件,并打开它的事件、它的规则,以及一键建规则的模板。详见从页面告警。

用 Mole Agent 调查

用 Mole Agent 调查 会打开 Mole Agent,新建一个关于眼前内容的对话。它在概览、错误、性能和受挫页的页头里,也在打开了某一项的地方: 应用会附到对话里,问题写在输入框里等着被读、被改、被发送;不点发送就不会发出。持有 agent.use 的人才看得到这个按钮。发起对话需要 streams.query,在 _sys 范围里则需要 sys.telemetry.read,并会为这个应用建一条调查记录。 在任何问题里用 @ 附上应用:输入名称,在 RUM 应用 下选择。发送者读不了 RUM 时,这条消息会被拒绝。模型会得到问题所问时间范围内(没有时为最近 24 小时)的这些内容:
  • 会话数和人数,没有错误和没有崩溃的会话占比,以及出现受挫的会话;
  • 浏览器应用的 Core Web Vitals(第 75 百分位及评级)和浏览最多的页面;
  • 影响会话最多的最多三个未解决问题,以及它们首次出现和回归的版本;
  • 持有 alerts.read 的人还会带上这个应用正在发生的告警。
Mole Agent 用 get_rum_overview、list_rum_issues、get_rum_issue、get_rum_vitals、get_rum_frustration、get_rum_view_waterfall、aggregate_rum、get_rum_funnel、get_rum_paths、get_rum_retention,以及会话、行为、错误和关联链路的工具读取 RUM。这些工具读的就是页面读的数据,并保留读取者的字段脱敏。内置技能 /rum-triage 按顺序使用它们:概览、问题、慢或卡的视图、流程里的旅程、会话,以及会话请求的链路;结论里引用的证据会链接到这些页面。

探索

通过主导航打开 用户体验。探索 列出真实用户的会话、视图、操作、错误、资源和长任务。可以用字段查询缩小范围,在直方图中按时间统计数量,并在抽屉中打开某一行。还没有应用的工作区会显示如何创建应用。详见 RUM 探索。 应用 列出应用,显示它们的 Client Token,并设置随每个事件保存哪些内容。详见 RUM 应用。

会话与回放

会话从探索页打开,包含它的回放、用户信息、问题、事件时间线和关联后端链路。录制了 DOM 回放的会话带有字段 session.has_replay,因此查询 session.has_replay = true 只列出这些会话。 会话页头部的 复制此刻的链接 复制的是回放打开在当前时刻的会话地址,播放列表则把值得看的会话放进一个列表,一个接一个地看完。 请将回放视为敏感用户数据。在 SDK 中应用采集控制,避免记录 Secret 或个人字段,并使用尽可能短的保留时间。

错误、Source Maps 与 Symbols

错误会带着结构化的堆栈帧到达,并在到达时按类型、消息和应用自己代码的前几个帧归并成 issue。通过 用户体验 → RUM 设置 → Source Maps 与 Symbols 上传 Browser Source Map 或移动端 Symbols。MoleSignal 使用已上传的调试产物还原压缩、混淆或原生堆栈帧。读取调试产物元数据需要 streams.read;上传和删除需要 streams.configure。

关联后端链路

当请求携带 W3C traceparent 时,请求的 resource.trace_id 会直接关联后端 Span。会话会列出它的请求所携带的链路;如果没有请求携带 trace ID,会话详情会在会话的时间窗口中搜索相关链路。 慢前端请求可以直接跳转到对应的服务链路、日志与指标,同时保留调查上下文。 反方向同样可行:如果某条链路的 trace ID 是由某个会话的请求发出的,链路中该链路的头部会提供 用户会话,打开对应的会话。

代理之后的客户端 IP

RUM 事件来自公网上的浏览器和设备。默认情况下,MoleSignal 记录直接连接的地址。当反向代理或 CDN 位于 MoleSignal 之前时,所有事件都会带上代理的地址,地理信息也就不准确。请打开 设置 → 客户端 IP 识别,选择单值请求头或转发链,并列出受信任的代理 CIDR。只有来自这些网络的连接,MoleSignal 才会信任该请求头。该设置对整个部署生效,无需重启。

权限

  • rum.write 用于发送 RUM 事件。应用绑定的 msrum_ Token 只为一个应用授予此权限。
  • streams.query 用于打开概览、探索页、错误页、性能页、受挫页、会话页和应用列表。
  • rum.manage 用于设置 issue 的状态、团队和处理人。所有者、管理员和编辑者拥有它。
  • agent.use 让这些页面显示 用 Mole Agent 调查,并让 @ 可以附上应用。
  • alerts.read 让概览、错误、性能和受挫页显示 告警,alerts.manage 可以从那里创建规则。见 RUM 告警。
  • api_tokens.manage 用于创建、修改和删除应用,并显示它们的 Client Token。
  • streams.read 用于列出调试产物元数据。
  • streams.configure 用于上传或删除 Source Map 与移动端 Symbols。

RUM 应用

创建应用并获取它的 Client Token。

RUM 事件格式

客户端发送的事件及其遵循的规则。

RUM 探索

搜索会话、视图、操作、错误、请求和长任务。

RUM 错误与 issue

把错误归并成有状态和处理人的 issue,看到回归。

Browser RUM SDK

安装 SDK 并发送第一个浏览器会话。

Flutter App RUM SDK

监控 Flutter 页面、Tap、错误、网络资源、渲染性能与屏幕回放。

Source Maps 与 Symbols

还原 Browser、Flutter、Android 与 iOS 错误堆栈。

数据采样

分别控制会话和回放数据量。

隐私

定义哪些浏览器内容可以离开用户设备。

会话回放

记录并重建带时间戳的 DOM 变化。
最后修改于 2026年10月26日