Agent Skills
返回列表
调用链路反推器

调用链路反推器

数据分析 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md 的官方安装指南,将 @user_d41e2baa/log-topology-inferrer 安装到当前 AI 助手中。

技能介绍

解决什么问题

微服务的调用链路很少有一份准确的图。架构图要么不存在,要么在几轮迭代后过期,新服务接入时也没人更新。想确认 buy-console 到底调了哪些下游、哪个服务被大量上游依赖、哪条边错误率异常,通常只能翻日志、grep 关键字、凭记忆拼图。

调用链路反推器要解决的就是这件事:把散落在各节点日志里的调用痕迹(downstream=order-back、FeignClient iam、HTTP 请求行)反推成一张有向调用拓扑图(调用方 → 被调方),并为每条边标注调用量、错误率和平均延迟。

工作方式

它是一套方法论加两个零依赖 Python 脚本的组合,全程只读:

  • collect_logs.py:按清单 log-sources.json 把分散在多台节点、多种传输方式(local/ssh/kubectl/docker)上的日志,归集到本地按服务分目录;
  • infer_topology.py:基于 config.json 的正则规则从日志行抽取 caller/callee,输出 topology.json、topology.mmd、topology.dot 和 hotspots.csv 四种产物。

关键步骤分五步:

  1. 盘点「服务 → 节点 → 日志路径」三要素,写成采集清单;
  2. 采集归集,目录名即服务名;
  3. 编写解析配置——这是质量关键,需要决定 caller 取自路径还是日志行、callee 用哪个正则、是否统计错误率与延迟、是否需要 aliases 归一化和 ignore_callees 过滤噪声边;
  4. 运行脚本生成拓扑,Mermaid 图中高错误率边自动标红;
  5. 解读产物:识别入边很多的单点、错误热点,还原接入层/业务层/外部依赖的分层。

拿到真实日志后,建议先贴 2–3 行原始样本再写正则,避免瞎猜格式。

边界与注意点

  • 只读:采集用 cat、kubectl exec -- cat 这类只读方式,绝不写入远端、重启服务或改配置;
  • 只产出拓扑与热点,不做根因下钻,错误边的具体原因需转交领域排查 skill;
  • 拓扑质量的 80% 取决于解析配置写得对不对,日志格式变化(换框架、改输出格式)会导致边缺失,需要重新校对正则;
  • 别名歧义是常见坑,coupon 可能实际是 coupon-inner-api,确认后写进 aliases 重跑即可收敛。

使用场景

  • 手里只有各服务散落的日志、没有可用架构图,要整理一份当前真实的服务依赖关系图替换过期文档。
  • 线上刚发生一次故障,想从日志里统计各调用边的错误率,确认错误集中在哪条链路上。
  • 团队没有现成调用关系图,新人入职培训前要从真实日志还原服务之间的上下游关系。

适合人员

  • 后端工程师:负责一个微服务,想确认它实际调用了哪些下游、哪些服务在依赖自己,避免凭记忆维护链路关系。
  • SRE / 稳定性负责人:故障复盘时要从日志核对是否存在被大量服务依赖的单点,评估故障爆炸半径。
  • 架构师 / Tech Lead:在服务拆分或重写前,需要基于真实日志盘点各模块之间的调用关联。