跳转至

如何配置用户访问监测采样

RUM Session 采样用于控制进入数据采集链路的用户会话比例。降低采样率可以减少 采集量和存储成本。

配置 Session 采样

sessionSampleRate 的取值范围为 0 到 100:

  • 100:采集全部 Session;
  • 0:不采集常规 Session;
  • 199:每个新 Session 按配置比例独立采样。

例如,采集 90% 的 Web RUM Session:

import { datafluxRum } from "@cloudcare/browser-rum"

datafluxRum.init({
  applicationId: "<APPLICATION_ID>",
  site: "<PUBLIC_OPENWAY_URL>",
  clientToken: "<CLIENT_TOKEN>",
  service: "browser",
  env: "production",
  version: "1.0.0",
  sessionSampleRate: 90,
})

以上示例使用公网 OpenWay。使用 DataKit 直连时,将 siteclientToken 替换为 datakitOrigin,不要同时配置两种上报地址。

Session 创建时会执行一次随机采样。采样结果在当前 Session 生命周期内保持不变, 不会对每条 View、Error 或 Resource 分别抽样。

Session Replay 使用独立的 sessionReplaySampleRate。只修改 sessionSampleRate 不会自动修改 Session Replay 采样率。

运行时重新开始 Session

RUM SDK 3.3.6 新增 startSession(),完整 RUM 包和精简 RUM 包均支持。

调用后会立即结束当前 Session,并按照当前采样配置重新开始 Session,不需要等待 用户下一次点击、滚动或键盘操作:

datafluxRum.startSession()

CDN 接入时使用相同 API:

window.DATAFLUX_RUM && window.DATAFLUX_RUM.startSession()

适用场景包括:

  • 用户登录、退出或切换账号后,需要隔离前后两段会话;
  • 用户同意隐私或监控策略后,需要立即重新执行 Session 采样;
  • 应用运行期间需要调整后续 Session 的采集比例。

覆盖运行时采样率

调用时可以传入新的 sessionSampleRate

datafluxRum.startSession({
  sessionSampleRate: 100,
})

该值同时用于:

  1. 本次重新开始的 Session;
  2. 后续因过期、恢复或用户活动自动续建的 Session。

采样率必须在 0 到 100 之间。传入无效值时,SDK 会输出配置错误,并保留当前 Session,不执行切换。

startSession() 只切换 RUM Session,不会刷新页面,也不会清除 setUser()、 Global Context 或其他业务状态。用户切换账号时,应先更新用户信息,再开始新的 Session。

Session ID 与采样结果

startSession() 会重新执行 Session 采样。新 Session 命中采样时会生成新的 session_id;未命中常规或错误补偿采样时,不会生成可上报的常规 RUM Session。

与 Session Replay 的关系

startSession() 只覆盖 sessionSampleRate,不会覆盖 sessionReplaySampleRatesessionReplayOnErrorSampleRate,也不会自动调用 startSessionReplayRecording()

应用已经调用 startSessionReplayRecording() 时,新 Session 是否允许上传 Replay, 仍由新的 Session 采样结果和现有 Replay 采样配置决定。

其他应用采样

文档评价

文档内容是否对您有帮助?