跳转到主要内容
Web RUM SDK 自动收集丰富的用户行为和性能数据。每个 RUM 事件都包含默认属性(如 view.urldevice.typegeo.country)以及特定事件类型的附加指标和属性。

默认属性

Web RUM SDK 会自动捕获以下默认属性,这些属性适用于所有 RUM 事件类型。
属性类型描述
date整数事件的时间戳(以毫秒为单位,epoch 毫秒)
type字符串事件的类型(如 sessionviewresourceerroraction
application.id字符串应用的唯一标识符
service字符串生成此事件的服务名称
env字符串应用的环境名称(如 proddevstaging
version字符串应用版本
sdk_version字符串RUM SDK 版本
属性类型描述
device.type字符串设备类型(如 DesktopMobileTabletTVOther
device.brand字符串设备品牌(如 AppleSamsungHuawei
device.model字符串设备型号(如 iPhoneiPad
device.name字符串设备的商业名称
属性类型描述
os.name字符串操作系统名称(如 Mac OSWindowsiOS
os.version字符串操作系统版本号(如 10.15.711.0
os.version_major字符串操作系统主版本号(如 1011
属性类型描述
browser.name字符串浏览器名称(如 ChromeFirefoxSafariEdge
browser.version字符串浏览器版本号(如 91.0.4472.124
browser.version_major字符串浏览器主版本号(如 91
browser.user_agent字符串User Agent 字符串
browser.viewport.width数字浏览器视口宽度(像素)
browser.viewport.height数字浏览器视口高度(像素)
属性类型描述
geo.country字符串国家名称
geo.country_iso_code字符串国家的 ISO 代码(如 USCN
geo.country_subdivision字符串国家的一级行政区划(如美国的州、中国的省)
geo.continent_code字符串洲的 ISO 代码(如 EUASNA
geo.continent字符串洲名称
geo.city字符串城市名称
地理位置信息由 FlashCat 后端根据客户端 IP 地址推断,不会在客户端收集精确的 GPS 位置。
属性类型描述
usr.id字符串用户的唯一标识符
usr.name字符串用户友好名称,默认显示在 RUM UI 中
usr.email字符串用户电子邮件地址。如果没有用户名,则显示电子邮件
您还可以添加自定义用户属性,例如 usr.planusr.role 等。要设置用户信息,请参阅 SDK 接入指南

事件特定属性

不同的事件类型具有特定的属性和指标。
属性类型描述
session.id字符串会话的唯一标识符
session.type字符串会话类型(如 usersynthetic
session.is_active布尔值会话是否处于活动状态
session.initial_view.id字符串会话中初始视图的 ID
session.initial_view.url字符串会话中初始视图的 URL
session.initial_view.name字符串会话中初始视图的名称
session.last_view.id字符串会话中最后一个视图的 ID
session.last_view.url字符串会话中最后一个视图的 URL
session.last_view.name字符串会话中最后一个视图的名称
session.has_replay布尔值会话是否启用了会话重放
RUM 收集来自 Navigation Timing API 的所有性能指标,以及与 Core Web Vitals 相关的指标。Core Web Vitals
属性类型描述
view.largest_contentful_paint数字(纳秒)最大内容绘制时间(LCP),视口中最大可见内容元素的渲染时间
view.first_input_delay数字(纳秒)首次输入延迟(FID),用户首次与页面交互到浏览器实际响应该交互之间的时间
view.cumulative_layout_shift数字累积布局偏移(CLS),量化了视口内可见元素的意外移动
view.interaction_to_next_paint数字(纳秒)交互到下次绘制(INP),测量用户与页面进行所有交互的延迟
导航性能指标
属性类型描述
view.time_spent数字(纳秒)用户在该视图上花费的时间
view.loading_time数字(纳秒)页面完全加载所需的时间(loadEventEnd 时触发)
view.first_contentful_paint数字(纳秒)首次内容绘制时间(FCP),浏览器首次渲染任何文本、图像、非空白 canvas 或 SVG 的时间
view.first_byte数字(纳秒)首字节时间(TTFB),从用户发起页面加载到浏览器接收 HTML 文档第一个字节的时间
view.dom_interactive数字(纳秒)解析器完成对主文档的工作的时刻(domInteractive
view.dom_content_loaded数字(纳秒)初始 HTML 文档完全加载和解析的时间
view.dom_complete数字(纳秒)页面和所有子资源准备就绪的时间(domComplete
view.load_event数字(纳秒)触发 load 事件的时间(loadEventEnd),表示页面完全加载
网络耗时指标
属性类型描述
view.redirect.duration数字(纳秒)重定向所花费的时间
view.dns.duration数字(纳秒)DNS 查询所花费的时间
view.connect.duration数字(纳秒)建立服务器连接所花费的时间
view.ssl.duration数字(纳秒)TLS 握手所花费的时间
view.request.duration数字(纳秒)请求 HTML 文档所花费的时间
view.response.duration数字(纳秒)下载 HTML 文档所花费的时间
view.in_foreground_periods.count数字视图处于前台的次数
view.in_foreground_periods.duration数字(纳秒)视图处于前台的总时间
属性类型描述
view.id字符串视图的唯一标识符
view.url字符串视图的 URL
view.name字符串视图的可自定义名称
view.referrer字符串前一个页面的 URL(referrer)
view.action.count数字该视图中收集的用户操作数
view.error.count数字该视图中收集的错误数
view.resource.count数字该视图中收集的资源数
view.long_task.count数字该视图中收集的长任务数
view.is_active布尔值视图是否处于活动状态
RUM 会收集来自 Resource Timing API 的详细网络时间信息,用于单个资源的加载。
属性类型描述
resource.duration数字(纳秒)加载资源所需的总时间
resource.size数字(字节)资源大小
resource.connect.duration数字(纳秒)建立服务器连接所需的时间
resource.ssl.duration数字(纳秒)TLS 握手所需的时间(仅 HTTPS)
resource.dns.duration数字(纳秒)DNS 解析所需的时间
resource.redirect.duration数字(纳秒)重定向所需的时间
resource.first_byte.duration数字(纳秒)等待接收响应首字节的时间
resource.download.duration数字(纳秒)下载响应的时间
resource.render_blocking_status字符串资源的渲染阻塞状态(blockingnon-blocking
resource.first_party布尔值是否为第一方资源(与应用同域)
属性类型描述
resource.id字符串资源的唯一标识符
resource.type字符串资源类型(如 xhrfetchcssjsimagefontmedia
resource.method字符串HTTP 方法(如 GETPOSTPUTDELETE
resource.status_code数字HTTP 响应状态码
resource.url字符串资源 URL
resource.url_host字符串URL 的主机部分
resource.url_path字符串URL 的路径部分
resource.url_query对象URL 的查询参数,以键值对形式解析
resource.url_scheme字符串URL 的协议(如 httpshttp
resource.provider.name字符串资源提供者名称,默认为 unknown
resource.provider.domain字符串资源提供者域名
resource.provider.type字符串资源提供者类型(如 first-partycdnadanalyticssocial
如果启用了 GraphQL 请求追踪,以下属性会附加到 resource 事件上:
属性类型描述
resource.graphql.operation_type字符串GraphQL 操作类型(querymutationsubscription
resource.graphql.operation_name字符串GraphQL 操作名称(如果在请求中提供)
resource.graphql.variables字符串随请求发送的 GraphQL 变量
resource.graphql.payload字符串GraphQL 查询(限制为 32 KB,仅在启用 trackPayload 时可用)
resource.graphql.errors_count数字GraphQL 响应中返回的错误数(仅在启用 trackResponseErrors 时可用)
resource.graphql.errors数组GraphQL 错误数组,包含 message、code、locations 和 path
长任务是指阻塞主线程 50 毫秒或更长时间的任务。这些任务会导致高输入延迟、慢速交互或卡顿的动画/滚动。
属性类型描述
long_task.duration数字(纳秒)长任务的持续时间
long_task.is_frozen_frame布尔值是否为冻结帧(持续时间超过 700ms)
长任务检测仅在支持 Long Tasks API 的浏览器中可用(Chrome、Edge)。Safari 和 Firefox 不支持此功能。
前端错误通过 RUM 收集。错误消息和堆栈跟踪(如果可用)会包含在内。通用错误属性
属性类型描述
error.id字符串错误的唯一标识符
error.source字符串错误来源(如 consolenetworksourceloggeragentwebviewcustomreport
error.type字符串错误类型(在某些情况下为错误代码)
error.message字符串简洁、易读的单行错误消息
error.stack字符串错误的堆栈跟踪或补充信息
error.issue_id字符串错误问题的唯一标识符(相同错误会被聚合到同一 issue)
error.fingerprint字符串用于唯一标识错误的指纹
error.handling字符串错误处理方式(handledunhandled
error.handling_stack字符串错误处理时的堆栈跟踪
error.causes数组导致此错误的其他错误信息
网络错误属性网络错误包含有关失败 HTTP 请求的信息:
属性类型描述
error.resource.status_code数字HTTP 响应状态码
error.resource.method字符串HTTP 方法(如 GETPOST
error.resource.url字符串资源 URL
error.resource.url_host字符串URL 的主机部分
error.resource.url_path字符串URL 的路径部分
error.resource.url_scheme字符串URL 的协议
error.resource.provider.name字符串资源提供者名称,默认为 unknown
error.resource.provider.domain字符串资源提供者域名
error.resource.provider.type字符串资源提供者类型(如 first-partycdnadanalytics
有关不同 JavaScript 错误类型的更多信息,请参阅 MDN 文档
操作时间属性
属性类型描述
action.loading_time数字(纳秒)操作的加载时间
action.long_task.count数字该操作触发的长任务数
action.resource.count数字该操作触发的资源数
action.error.count数字该操作触发的错误数
操作标识属性
属性类型描述
action.id字符串用户操作的唯一标识符(UUID)
action.type字符串用户操作类型(如 clickcustom)。对于自定义用户操作,设置为 custom
action.target.name字符串用户交互的元素。仅适用于自动收集的操作
action.name字符串用户友好的名称(如 Click on #checkout)。对于自定义用户操作,为 API 调用中给定的操作名称
RUM 会自动检测用户的挫败信号,帮助您了解用户在应用中遇到的问题。
属性类型描述
session.frustration.count数字会话中所有挫败信号的数量
view.frustration.count数字视图中所有挫败信号的数量
action.frustration.type:dead_click字符串RUM SDK 检测到的死点击(点击无响应)
action.frustration.type:rage_click字符串RUM SDK 检测到的暴怒点击(连续快速点击)
action.frustration.type:error_click字符串RUM SDK 检测到的错误点击(点击后触发错误)
挫败信号是识别用户体验问题的重要指标。死点击和暴怒点击通常表明 UI 响应不及时或交互设计存在问题。
如果 URL 中包含 UTM 参数,RUM 会自动捕获以下属性,用于追踪营销活动:
属性类型描述
view.url_query.utm_source字符串URL 中追踪流量来源的参数
view.url_query.utm_medium字符串URL 中追踪流量来自哪个渠道的参数
view.url_query.utm_campaign字符串URL 中标识与该视图关联的特定营销活动的参数
view.url_query.utm_content字符串URL 中标识用户在营销活动中点击的特定元素的参数
view.url_query.utm_term字符串URL 中追踪用户搜索以触发给定活动的关键字的参数

数据存储

在上传到 FlashCat 之前,数据会以明文形式临时存储在浏览器的本地存储(LocalStorage 或 SessionStorage)中。
1

数据收集

SDK 将事件添加到内存中的批次缓冲区。
2

本地缓存

当网络不可用时,批次会被保留在本地存储中。
3

批次上传

网络可用时,数据以批次形式发送到服务器。
4

自动清理

超过一定时限的数据会被自动清理,以避免占用过多存储空间。
敏感数据不应包含在 RUM 事件中,或者应在发送前通过 beforeSend 回调进行混淆或过滤。

数据上传

Web RUM SDK 会将收集到的事件以批次形式上传到服务器,以优化网络性能和减少对用户体验的影响。

批次上传触发条件

  • 批次中的事件数量达到阈值
  • 批次大小达到阈值
  • 定期上传(例如每 10 秒)
  • 页面卸载时(beforeunload 事件)

上传策略

策略说明
Beacon API优先使用,确保在页面卸载时数据不会丢失
XHR/Fetch Fallback如果 Beacon API 不可用,使用 XMLHttpRequest 或 Fetch API
失败重试如果上传失败,批次会被保留在本地存储,直到成功发送
数据压缩上传前对批次数据进行压缩,减少网络流量

隐私和合规

IP 地址匿名化

可配置 SDK 对 IP 地址进行匿名化处理

敏感数据过滤

使用 beforeSend 回调过滤或混淆敏感信息

Cookie 和存储控制

可配置是否使用 Cookie 和本地存储

GDPR/CCPA 合规

支持用户隐私选择退出机制
有关隐私配置的详细信息,请参阅 高级配置

更多信息