11月13日,LinkedIn公布其基于OpenTelemetry构建的端到端遥测平台,将用户在iOS、Android和Web应用中的操作与处理这些交互的后端服务连接起来,并一直追踪到底层数据存储。该方案旨在填补客户端行为与后端追踪割裂造成的可观测性断点。
单个页面可能产生大量请求,每个请求都可能经过多个服务。LinkedIn在标准OpenTelemetry traceId之上引入pageForestId,为单个分布式追踪提供页面级上下文,使来自同一页面的相关请求得以关联。工程师既能排查单个请求,也能分析影响用户体验的更广泛活动,弥补了传统追踪只覆盖单请求的缺陷。
LinkedIn技术栈涵盖移动与Web客户端,以及用Java、Python、Go和Rust编写的后端服务。OpenTelemetry提供统一的埋点模型、追踪上下文和语义约定,LinkedIn在其SDK基础上封装扩展,由平台统一处理移动端生命周期、遥测上报和私有元数据。遥测数据经Apache Kafka传输并存储于ClickHouse,通过pageForestId、traceId和时间戳建立关联。
由于捕获每个span会产生海量数据,采样成为架构基础。LinkedIn采用协同头部采样,以匿名化用户标识保证客户端与服务端采样决策一致,避免一侧数据被采样而另一侧被丢弃。平台还区分高价值体验质量数据与低价值调试信息,估计某些后端追踪数据中多达90%可归为调试级。此外,平台通过属性白名单、黑名单和内容脱敏控制进入追踪的数据,防止追踪链路成为敏感信息泄露通道。