Skip to main content
微信小程序 RUM SDK 的高级配置用于处理网络转发、链路追踪、会话控制、上下文补充和手动埋点。你可以在初始化时设置采集行为,也可以在运行时通过公开 API 补充事件。

上报地址和代理

SDK 默认将 RUM 数据发送到 https://browser.flashcat.cloud/api/v2/rum。如果小程序无法直接访问默认地址,或你需要先经过自己的网关,可以使用 proxy

使用字符串代理

proxy 是字符串时,SDK 会去掉末尾多余的 /,并生成 {proxy}?ddforward={encodedPath}。其中 ddforward 是编码后的 /api/v2/rum 路径和查询参数。
app.js

使用函数代理

proxy 是函数时,SDK 会把 pathparameters 交给你拼接完整 URL。path 固定为 /api/v2/rumparameters 包含 ddsourceddtagsdd-api-key、SDK 版本和批次时间等上报参数。
app.js
未配置 proxy 时,SDK 使用 site 拼接上报地址:https://{site}/api/v2/rumsite 默认值为 browser.flashcat.cloud

分布式追踪

SDK 可以为小程序网络请求注入 W3C Trace Context 格式的追踪头。启用后,命中采样的 wx.requestwx.uploadFilewx.downloadFile 会携带 trace header,同时 resource 事件中会写入 trace_idspan_id
app.js
SDK 生成的默认 header 值遵循 00-{traceId}-{spanId}-{traceFlags} 格式。例如:
如果配置了 rootTraceContext,SDK 会继承根上下文的 traceIdtraceFlags,并生成新的 spanId;否则每个采样请求会创建新的 trace context。

会话行为

SDK 使用小程序存储保存当前会话,并把会话 ID 写入每个 RUM 事件。 你可以在退出登录、切换账号或需要切分会话时调用 stopSession()。调用后,SDK 会清除当前会话;下一次事件会创建新的会话。
app.js

事件限流

SDK 会按事件类型进行每分钟限流,默认阈值为每种事件类型每分钟 3000 条。超过阈值后,SDK 会丢弃该类型后续事件,并生成一条来源为 custom 的错误事件说明限流情况。
app.js
如果你在短时间内主动上报大量自定义事件,请根据实际流量调整 eventRateLimiterThreshold,避免业务事件被限流。

发送前处理

beforeSend 会在 RUM 事件发送前执行。你可以在这里补充字段、脱敏上下文,或返回 false 丢弃当前事件。
app.js

用户和全局上下文

setUser() 设置当前用户信息。启用 trackAnonymousUser 且用户上下文为空时,SDK 会自动将匿名 ID 写入 usr.idusr.anonymous_id;如果你设置了用户信息,SDK 会保留你的用户字段,并补充 usr.anonymous_id
app.js
setGlobalContext() 设置全局上下文。SDK 会把该对象写入后续事件的 context 字段。
app.js

手动页面和自定义耗时

自动页面名称来自页面实例的 route。如果你需要记录虚拟页面,或希望用业务名称覆盖当前页面,可以调用 startPage()
pages/product/detail.js
addTiming() 会把自定义耗时写入当前 view 的 custom_timings。如果传入 time,SDK 使用该时间点相对于当前页面开始时间的差值;未传入时使用当前时间。
pages/product/detail.js
自定义 timing 名称只保留字母、数字、-_.@$,其他字符会替换为 _

手动操作、错误和自定义事件

pages/order/detail.js

相关页面

SDK 接入指南

完成微信小程序 RUM SDK 安装和初始化。

兼容性

了解小程序基础库版本、开发工具和平台 API 要求。

数据收集

了解 SDK 自动采集的页面、操作、请求、错误和性能数据。