高级配置
概述
覆盖默认 RUM 视图名称
/dashboard/1234
和 /dashboard/9a
会被归一化为 /dashboard/?
。trackViewsManually
选项手动跟踪视图事件,并为视图指定自定义名称以及关联的服务和版本。配置手动跟踪视图
trackViewsManually
为 true
:
startView
方法以启动视图。RUM 数据将在视图启动时开始收集。您可以为视图及其子事件添加上下文。参数说明
示例:手动跟踪结账页面视图
checkout
作为视图名称,并关联 purchase
服务,版本为 1.2.3
:
React 路由集成
1.
trackViewsManually
为 true
(如上)。2.
react-router-dom
的 useLocation
和 matchRoutes
API。
设置视图名称
setViewName
方法更新当前视图的名称,而无需启动新视图。更改后的视图名称会影响视图及其子事件(从调用时刻起)。
丰富和控制 RUM 数据
beforeSend
回调函数,您可以在事件发送到 FlashDuty 之前对其进行拦截和修改,支持以下操作:beforeSend
回调接受两个参数:上下文类型
Location
对象。Event
和处理堆栈。XMLHttpRequest
、PerformanceResourceTiming
和处理堆栈。Request
、Response
、PerformanceResourceTiming
和处理堆栈。PerformanceResourceTiming
。Error
对象。PerformanceLongTaskTiming
。丰富 RUM 事件
beforeSend
回调为事件添加上下文属性。例如,为资源事件的响应头添加数据:
event.context
中的属性会被 RUM SDK 识别。修改 RUM 事件内容
beforeSend
修改事件内容,例如从视图 URL 中屏蔽电子邮件地址:
可修改的属性
beforeSend
修改:addError
、addAction
)添加的属性。丢弃 RUM 事件
beforeSend
中返回 false
,可以丢弃特定 RUM 事件(视图事件除外):
用户会话
用户属性
用户会话 API
设置用户会话
获取用户会话
添加/覆盖用户属性
删除用户属性
清除用户会话
clearUser
)后,最后一个视图仍保留用户信息,但后续视图和会话级别数据不会。采样
sessionSampleRate
参数设置采样率(百分比)来减少收集的会话数量。例如,采集 90% 的会话:
用户跟踪同意
trackingConsent
)。可选值:setTrackingConsent
API 在初始化后更改同意状态:"granted"
更改为 "not-granted"
:停止 RUM 会话,数据不再发送。"not-granted"
更改为 "granted"
:如果没有活跃会话,将创建新会话并恢复数据收集。setTrackingConsent
提供用户决定。示例:处理用户同意
视图上下文
startView
:启动视图时指定上下文。setViewContextProperty
:为当前视图添加或修改上下文属性。setViewContext
:替换当前视图的上下文。示例:添加视图上下文
示例:替换视图上下文
错误上下文
dd_context
属性为错误对象附加本地上下文,RUM SDK 会自动将其合并到最终错误事件上下文中。
全局上下文
上下文生命周期
storeContextsAcrossPages
选项可以将上下文存储到 localStorage
,支持:示例:
限制:
localStorage
数据会超出用户会话生命周期。trackSessionAcrossSubdomains
选项不兼容,因为 localStorage
仅在同一域名下共享。localStorage
容量限制为 5 MiB,需确保应用数据、FlashDuty 上下文及其他第三方数据总和在此范围内。微前端支持
service
和 version
属性。使用方法
beforeSend
中根据堆栈信息覆盖 service
和 version
属性:
service
属性过滤事件。限制
注意事项
applicationId
和 clientToken
,以避免数据上传失败。startView
逻辑。