首页/网络/网络排障速查/跨服务慢调用:追踪、日志与抓包三件套

跨服务慢调用:追踪、日志与抓包三件套

分布式系统的慢调用靠三件套收敛:Trace 找慢 span、日志串上下文、抓包验证网络行为;三者互相印证,避免『各自都有理』。

网络排障速查网络更新于 2026-10-12

三件套联动

三件套联动
# 1) 追踪:按 trace_id 查 span 耗时(示例为查询思路)
# 2) 日志串联:
grep -h 'trace_id=9f3a' /var/log/app/*.log | sort | head -40
# 3) 抓包核对对应时间窗的下游交互:
tshark -r /tmp/cap.pcap -Y 'ip.addr == 10.0.0.8 && tcp.port == 3306' -T fields -e frame.time_relative -e tcp.len | head -20
判读应用处理耗时长 → 查代码/SQL/锁;网络往返耗时长 → 查链路与对端
前置各服务时钟同步(NTP),否则 span 无法比较
补埋点无 trace_id 时先用『时间窗 + 客户端 IP + URL』近似关联
网络与应用的『锅』要在同一时间轴上判定:把 trace 时间窗、日志时间窗与 pcap 三者的时间轴对齐后再下结论。

易错点

  • 各服务时钟不同步时直接比较 span 耗时,得出错误瓶颈
  • 只排查单个服务,忽略调用链上游超时造成的下游连锁反应

数据来源与参考

  • OpenTelemetry 文档:Traces 概念
  • Google Dapper 论文:大规模分布式追踪

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌