> ## Documentation Index
> Fetch the complete documentation index at: https://docs.molesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# RUM 受挫信号

> 看哪些元素被人狂点、点了没有反应或点出了错误，各在多少个会话里，并从点击前几秒回放其中最新的会话。

**用户体验 → 受挫** 说明是什么让使用应用的人受挫。它一次只看一个应用，在一个环境或全部环境里，所看时间范围内的情况。浏览器应用和 App 都能用：浏览器有狂点、死点和错误点击，App 有连续点按和点按出错。

## 信号

SDK 在用户那一侧判断信号，写在操作的 `action.frustration.type` 上，是一个词的列表。MoleSignal 不会再次判断，所以信号就是 SDK 看到的。见[事件格式](https://docs.molesignal.com/zh-Hans/rum/events.md)。

| 信号 | 浏览器 | App | 含义 |
| - | - | - | - |
| **狂点** | `rage_click` | `rage_tap` | 短时间内在同一处一次又一次地点击或点按。 |
| **死点** | `dead_click` | — | 点击后页面没有任何变化。Flutter SDK 不判断这一项。 |
| **错误点击** | `error_click` | `error_tap` | 点击或点按之后紧跟着出现错误。 |

一个操作可以带不止一个信号。信号的词以它的类别名开头，所以某一类的数量，就是列表里有以它开头的词的操作数。

## 页面先说什么

一句话说清多少比例的会话出现了受挫信号，以及出现过的每种信号有多少个操作、分布在多少个会话里。比例是 `session.frustration.count` 大于 0 的会话，占应用全部会话的份额。一个人点十下只算一个会话，所以表格按会话数排序。

时间范围内没有操作带信号时，页面会说明，并提供放宽时间范围。

## 元素、页面、版本和浏览器

表格列出带信号的操作所分成的组，触及会话最多的组排在最前。每组按信号分别给出操作数，没有的显示短横，再给出它触及的会话数。

* **按** 选择组是什么。**元素**（默认）用它的文字和选择器区分。没有文字的元素，比如被人点击的横幅，显示为 **（无名称）**，选择器仍在旁边。其他选项是页面（App 里是屏幕）、版本，以及浏览器（App 里是系统）。
* **信号** 把表格收窄到带某一种信号的操作。其他信号的列此时只数同时带这一种信号的操作。
* 搜索把表格收窄到元素或页面里有这些词的操作。
* 表格读取触及会话最多的 100 组，对某一列排序，排的就是这 100 组。点表头按这一列排序，再点一次反过来。

所做的选择、排序和打开的组都写在地址里，所以视图可以分享。

## 一组由什么构成

点一行，在右侧打开面板。

* 第一句说有多少个会话在这一组上遇到信号。大多数在同一个页面时，会说出这个页面。
* **受影响的会话** 是图表，画出时间范围内每一段里，信号触及的会话数。
* **信号** 把这一组的操作分给各种信号。
* **版本** 和 **页面**（App 里是 **屏幕**）列出信号发生在哪里，以及占这一组会话的份额。表格正在按它分组的那一项不再重复列出。
* **最近的会话** 列出在这一组上遇到信号的最近三个会话，每个有时间、是谁、出现了哪些信号，以及其中是否有一个以错误结束。**回放** 从第一个信号前 5 秒打开会话。没有录制回放的会话，显示 **会话**，打开会话页，不定位时刻。

面板按和表格相同的方式收窄：按信号，按搜索词。

## 会话页

**回放** 打开[会话页](https://docs.molesignal.com/zh-Hans/rum/explorer.md#打开会话)，回放停在那个时刻，直到播放。时刻写在地址里（`at`，自纪元起的微秒数），所以链接可以分享。地址没有说明时刻时，回放从头开始；时刻在录制之后时，停在末尾。

## 数字怎么数

句子、表格和面板都是用 [`/api/v1/rum/aggregate`](https://docs.molesignal.com/zh-Hans/api/rum#度量行) 在符合条件的 `rum_actions` 行上数的：`action.frustration.count` 大于 0 的操作，再按 `action.frustration.type` 里的词收窄。会话按 `session.id` 数，无论有多少操作触及，都只算一次。会话比例在 `rum_sessions` 上数。数得比时间预算还久的卡片会说明，其余的保留：缩小时间范围再读一次。最近的会话用探索页的搜索读取，新的在前。

页面需要读取 RUM 其余部分的权限 `streams.query`。见 [RUM](https://docs.molesignal.com/zh-Hans/rum#权限)。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.