在应用之前初始化
追踪必须在被埋点的库导入之前启动。在 Node.js 中用 --import 先导入追踪模块,或在入口最顶部 require。如果 SDK 在 HTTP 客户端加载后才启动,会丢失部分 span 和上下文传播。
node --import ./tracing.js server.js
传播与属性
入站 W3C traceparent 头创建父上下文,出站 HTTP 和数据库调用应延续同一 trace。添加有助于诊断的属性,如路由、依赖和状态,但绝不包含授权头或原始用户输入。对高流量采样,同时保留错误和慢 trace。
关闭时刷新
导出器会缓冲 span。收到 SIGTERM 时,停止接收流量、完成进行中工作,并在退出前调用 sdk.shutdown()。不刷新会丢失崩溃或发布前的最后一批 trace,而那往往最有用。
验证 trace
预期结果:一个请求产生包含 gateway、service 和 database span 的单条 trace,子 span 共享入站 trace id。用已知 traceparent 发送请求,在后端按该 id 查询,确认出站调用作为子 span 出现。trace 在第一个服务就中断,说明上下文传播或 SDK 初始化有误。