客户端 SDK 注入 Trace 标识的过程是端到端打通的第一个关键环节,可以拆解为三个具体步骤。拦截请求:通过网络库的拦截机制实现,例如 Android 上的 OkHttp Interceptor、iOS 的 URLProtocol 或 Web 的 fetch 包装。SDK 在请求真正发出之前介入,捕获即将发出的所有请求信息。创建 Span:为这次请求创建一个 Span 对象,生成两个核心标识——Trace ID(32 位十六进制,整条链路的唯一身份)和 Span ID(16 位十六进制,当前这一跳的唯一身份)。这两个 ID 都必须遵守标准的字符集和长度规范,否则下游 APM 可能拒绝解析。记录起始时间:精确记录请求发起的时间戳,用于后续计算各阶段耗时(DNS、连接、TLS、首包等),这也是 RUM 资源指标的基础数据。完成上述步骤后,SDK 将 Trace ID 和 Span ID 按选定协议(W3C 或 SW8)编码后写入 HTTP Header,随请求一同发出。当响应返回时,SDK 还需要记录结束时间、响应码、响应大小等信息,组合成完整的 Resource 事件上报。




