Skip to content

排查:没有上报 ​

埋点 SDK 最高频的问题是「我埋了,后台却没数据」。绝大多数情况不是没埋上,而是事件在某一环被正常过滤或没真正发出。本页是一条自上而下的排查路径——按顺序走,多数问题前两步就能定位。

先分清三种「没有」 ​

用 DevTools 扩展 两个互不依赖网络的观测点先定位环节:「扫描元素」反映 DOM 埋点,「事件流」反映真正发到网络的字节。为什么这两个观测点能脱离网络成立、又有哪些局限,见 DevTools 内部机制。

现象多半的环节跳到
「扫描元素」也看不到你的坐标,或坐标标黄埋点没生效 / 坐标非法1. 埋点没生效
能扫到坐标,但操作后「事件流」无对应事件被 SDK 内部过滤2. 被内部过滤
「事件流」有事件,但后端 / 网关无数据发出了没到后端3. 发出了没到后端

1. 埋点没生效 ​

事件根本没产生。逐项核对:

  • 没装 TrackingPlugin:行为埋点是 opt-in,必须 plugins: [new TrackingPlugin({ autoTrack: true })]。不开 autoTrack,声明式 data-trace* 不会被采集。见 行为埋点。
  • 坐标非法:data-trace* 组合需是合法 TracePath(. 分隔 2–8 段、每段 [a-z0-9_-]{1,32}),否则 DevTools 标黄、不上报。此时控制台会有 [lens] 开头的 warn,直接给出拼接后的完整坐标与失败原因(段数越界 / 段超长 / 含非法字符),同一坐标只提示一次。唯一的静默例外:元素既无 data-trace-key 也无显式 data-trace-type、且拼出的坐标不足 2 段——这是误点「只写 data-trace 祖先段的容器」的常态,本就不该上报;非法字符 / 空段 / 超长则无论写在哪都照常提示(含 v-trace="'a.b.c'" 这类只产出 data-trace 的扁平坐标写法)。规则见 行为埋点。
  • 框架适配器没接好:Vue 漏了 app.use(TripoLensVue)、React 漏了 <TraceProvider>,或指令/原语写错。见 Vue 接入 / React 接入。
  • 错误 / 性能未装插件:ErrorPlugin / PerformancePlugin 同样 opt-in,没装就没有对应事件。

2. 被 SDK 内部过滤 ​

事件产生了,但在管线里被合规 / 治理规则丢弃——这些都不会发到网络,DevTools 事件流也看不到:

  • Consent 未授权:对应维度(tracking / errors / performance)未授权时,该类事件不采集。见 Consent 授权。
  • killSwitch 开启:远程配置的总开关关停了上报。
  • 未命中采样:坐标级 / 全局采样把事件采没了(采样率字符串合法值 '1'–'10' 映射 10%–100%,无法配 0;全停用 killSwitch)。
  • Schema 校验失败:不合规事件在管线 Pipeline 阶段 被丢弃。

killSwitch 与采样都由 CDN 远程配置控制,改完即生效——如何查改见 远程配置。想在 DevTools 里看到哪一条事件、被哪个阶段丢弃,按 Playground + DevTools 联调管线 走一遍。

3. 发出了没到后端 ​

事件进了上报队列,但没成功落到网关:

  • endpoint 不可达 / 配错(最常见):endpoint 必传且无内置默认,若填了占位地址或不可达网关,fetch 失败时事件被静默转存离线(不报错、也不重试到本次),后端自然收不到。先确认上报地址真能 POST 通(可达网关 / 同源 sink),配置见 构造参数 · endpoint。
  • 行为事件是批量的:click / expo 等按批量阈值发送,单次操作可能还在缓冲。手动 trace.flush() 或等阈值。
  • SSR 环境:非浏览器环境 init() 与上报均为 no-op。SSR 采集要走专门接线,见 SSR 采集。

用 DevTools 快速定位 ​

  1. F12 → Tripo Lens 面板 → 点「扫描元素」:看得到坐标 → 排除第 1 节。
  2. 开着面板重做操作:事件流出现事件 → 问题在第 3 节(网关 / 可达性);没出现 → 问题在第 2 节(被过滤)。

完整面板说明与调试工作流见 DevTools 扩展;想现场复现「事件被某阶段丢弃」,见 Playground + DevTools 联调管线。

还是不行?速查清单 ​

下一步 ​

基于 MIT 协议发布(内部使用)