用户体验监控与前端监控同样面向不同终端的应用性能问题(如页面加载、网络请求耗时等)提供相应的解决方案。相较于前端监控,用户体验监控产品能力进行了全面升级,支持更丰富的端侧应用平台,更灵活的数据呈现形式。
支持的应用类型
应用类型 | 前端监控 | 用户体验监控 |
Web & H5 |
|
|
小程序 |
|
|
iOS (包括Flutter、ReactNative开发的混合应用) |
|
|
Android(包括Flutter、ReactNative开发的混合应用) |
|
|
Windows |
|
|
macOS |
|
|
功能对比
功能 | 前端监控 | 用户体验监控 |
用户统计 | 支持 | 支持 |
会话轨迹 | 支持页面维度的会话轨迹。 | 除页面加载外,新增资源请求、用户行为事件、自定义事件的完整行为轨迹。 |
页面统计 | 支持采集页面访问量、加载耗时、首次渲染、DOM Ready等核心页面指标。 | 除关键页面指标之外,新增WebVitals三指标。 |
资源统计(包括API请求) | 支持采集API请求耗时、请求次数、请求状态,支持统计资源错误数。 支持基于自研Eagle-eye Trace协议进行端到端链路打通。 | 支持采集JS、CSS、Image、Fetch、XHR等多种资源类型的耗时、加载次数、成功状态等信息。 API请求支持配置采集请求头、参数、响应头。 支持基于开源OpenTelemetry、SkyWalking Trace协议进行端到端链路打通。 |
异常统计 | JS错误:统计JS错误次数、错误率、错误堆栈。 | JS错误:统计JS错误次数、错误率、错误堆栈。 白屏分析:支持统计白屏占比,展示白屏发生时的页面截图。 |
自定义统计 | 自定义事件 | 自定义事件 自定义异常 自定义信息 |
数据灵活 | 数据存储SLS ,支持自由查询分析。 | 数据存储SLS,支持自由查询分析。 数据探索:预置维度丰富的指标分析能力。 |
可视化能力 | 预置控制台,支持维度筛选。 | 预置控制台,支持维度筛选。 预置Grafana大盘。 支持自定义大盘。 |
RUM告警规则指标说明
ARMS用户体验监控(RUM)告警规则中各类型的告警条件指标说明,所有告警指标的最小时间颗粒度为1分钟。
指标类型
RUM支持的指标共包含4种类型:异常监控、页面监控、资源监控、卡顿监控,每种类型指标都有各自不同的指标维度(即筛选条件),此外,所有类型指标均支持公共维度。
公共维度
公共指标维度,所有类型指标均支持。
维度 | 维度名称 | 维度说明 |
appType | 应用类型 | 应用类型,由上报和数据流双边指定,枚举值: Android、iOS、Web、MiniApp。 |
appEnv | 应用环境类型 | 应用环境类型,用于区分生产Pord(默认)、灰度Gray、预发Pre等。 |
deviceBrand | 设备品牌 | 终端设备品牌,例如mac、iPad、VIVO、红米。 |
osType | 操作系统类型 | 设备报告的操作系统类型。 |
osContainer | 应用运行环境或名称 | 如:Chrome小程序(宿主应用)、PC(浏览器类型)、App(应用名称)。 |
geoCountry | 国家 | 国家名称。 |
geoProvince | 省份 | 省份名称。 |
geoCity | 城市 | 城市名称。 |
ispName | 运营商名称 | 运营商名称。 |
viewName | 页面名称 | 关联的页面名称。 |
指标明细
异常监控
指标说明
指标名称 | 单位 | 是否为聚合型指标 | 指标说明 |
异常数量 (exception.count) | 无 | 是 | 异常次数,如果短时间内发生相同错误无需多次上报,默认为1。 |
指标维度
异常监控指标支持的筛选条件。
维度 | 维度名称 | 维度说明 |
exceptionName | 错误名称 | 错误类型的二级分类。 |
exceptionType | 错误类型 | 包括:Crash(崩溃)、Custom(自定义错误)、error(执行错误)。 |
exceptionSource | 错误来源 | 错误来源,例如Console、Event。 |
exceptionMessage | 错误内容 | 详细错误信息。 |
页面监控
指标说明
指标名称 | 单位 | 是否为聚合型指标 | 指标说明 |
首次内容渲染耗时 (view.first_contentful_paint) | 无 | 否 | 白屏时间,FCP时间,浏览器首次呈现text、image(包括背景图像)、非白色Canvas或SVG的时间。 |
页面加载耗时 (view.dom_complete) | 毫秒 | 否 | DOM页面和所有子资源都准备好了。对于用户Loading已停止旋转。 |
首次交互延迟耗时 (view.first_input_time) | 毫秒 | 否 | 从视图加载到用户进行第一次交互的时间。 |
最大内容渲染耗时 (view.largest_contentful_paint) | 毫秒 | 否 | 页面加载过程中,视口内最大DOM对象(即屏幕上显示的最大内容块)开始渲染的时间点。如果这个时间超过2.5秒,则表明加载速度较慢。 |
累计布局偏移 (view.cumulative_layout_shift) | 毫秒 | 否 | 量化由于动态加载的内容(例如第三方广告)而导致的意外页面移动,其中0表示没有发生变化。 |
DOM加载耗时 (view.dom_content_loaded) | 毫秒 | 否 | 当初始HTML文档完全加载和解析时触发的事件,无需等待非渲染阻塞资源Stylesheets、Images和Subframes完成加载。 |
DOM可交互耗时 (view.dom_interactive) | 毫秒 | 否 | 首次可交互时间。 |
完全加载耗时 (view.load_event) | 毫秒 | 否 | 页面完全加载时触发的事件。通常是附加应用程序逻辑的触发器。 |
指标维度
无
资源监控
指标说明
指标名称 | 单位 | 是否为聚合型指标 | 指标说明 |
DNS耗时 (resource.dns_duration) | 毫秒 | 否 | 解析最后一个请求的DNS名称所花费的时间。 domainLookupEnd - domainLookupStart |
重定向耗时 (resource.redirect_duration) | 毫秒 | 否 | 重定向HTTP请求花费的时间。 redirectEnd - redirectStart |
总耗时 (resource.duration) | 毫秒 | 否 | 加载所有资源花费的全部时间。 responseEnd - redirectStart |
TCP连接耗时 (resource.connection_duration) | 毫秒 | 否 | 与服务器建立连接花费的时间。 connectEnd - connectStart |
SSL耗时 (resource.ssl_duration) | 毫秒 | 否 | TLS握手花费的时间。如果最后一个请求不是通过HTTPS,则不会出现此指标。 connectEnd - secureConnectionStart |
首字节耗时 (resource.first_byte_duration) | 毫秒 | 否 | 等待接收响应的第一个字节所花费的时间。 responseStart - requestStart |
加载耗时 (resource.download_duration) | 毫秒 | 否 | 下载响应花费的时间。 responseEnd - responseStart |
资源数量 (resource.count) | 无 | 是 | 统计资源总数量。 |
资源大小 (resource.size) | 字节 (Bytes) | 否 | 资源大小,对应decodedBodySize。 |
指标维度
资源监控指标支持的筛选条件。
维度 | 维度名称 | 维度说明 |
resourceName | 资源名称 | 默认为URL的Path部分,可以基于规则进行匹配或由用户主动配置。 |
resourceType | 资源类型 | 采集的资源类型。例如:CSS、JavaScript、Media、XHR、Image、Navigation。 |
resourceSuccess | 资源加载是否成功 | 资源加载是否成功。 1 :成功 0:失败 -1:未知 |
resourceStatusCode | 资源状态码 | 资源状态码,如:2xx、5xx、4xx等。 |
卡顿监控
指标说明
指标名称 | 单位 | 是否为聚合型指标 | 指标说明 |
卡顿耗时 (resource.dns_duration) | 毫秒 | 否 | 单次卡顿时间。 |
卡顿次数 (resource.redirect_duration) | 无 | 是 | 卡顿次数,如果在短时间内卡顿无需多次上报,默认为1。 |
指标维度
卡顿监控指标支持的筛选条件。
维度 | 维度名称 | 维度说明 |
longtaskSource | 卡顿来源 | 卡顿来源 |
longtaskType | 卡顿类型 | 卡顿类型 |