Flashduty RUM 的会话重放功能集成于 RUM SDK 中,通过简单配置采样比例和隐私规则,即可快速启用重放功能。开启采集#
自动采集#
重放 SDK 已集成至 RUM SDK,配置采样比例便可开启重放功能。采样方式:在客户端 sdk 初始化 session 时生成 0-1 之间的随机数,与 rate/100
进行大小比较。如落在区间内,则该 session 会作为采集样本,回放数据会在 session 周期内采集与上报。在 session 被采样 的基础上,会话重放的采样率(sessionReplaySampleRate)会被进行二次计算和采样。
默认配置采样率后,会在RUM.init()
执行后开启自动采集。若想手动控制采集时机(如用户登录后再进行数据采集),可先开启手动采集开关,再手动调用 record 方法。开启采集后,可通过stopSessionReplayRecording()
方法停止采集。强制开启#
在某些场景下,即使采样率并未命中,也希望采集该 session 相关数据(如重点监测刚上线的功能,或者捕获某个异常后希望上报后续操作),此时可以通过调用
startSessionReplayRecording({ force: true })
方法来强制开启重放。注:只有当本次 session 被采样,而 sessionReplay 未被采样的情况下,强制开启才会生效。如果 session 本身并没有被采样,即使强制开启 replay 也无效。
关闭采集#
如果需要关闭采集功能,将对应的 replay 采样率调整至 0 或者直接去掉该配置项即可。工作原理#
在录制阶段,录制 SDK 会将当前 dom 和 css 样式打快照,并在用户行为(DOM 变化、鼠标移动、点击、表单输入等)发生时收集对应的事件。通过序列化、压缩、去除敏感信息后进行数据上报。在重放阶段,播放 SDK 会根据快照进行 dom 重建,并在合适的时机将事件行为转换为 dom 变化并进行展示。在数据上报前,SDK 会提前进行数据压缩,并将该 CPU 密集操作放在 web worker 中执行 ,不会影响主线程渲染。SDK 兼容性和 RUM SDK 一致,支持 IE11 以上浏览器。下一步#