跳到主要内容
版本:3.7.0

调用链

在分布式系统、微服务架构以及复杂单体应用的性能监控与故障排查中,调用链是串联 “用户请求全链路执行节点” 的核心技术,通过记录请求从 “入口到出口” 的所有调用路径、执行状态与耗时,解决 “分布式环境下调用黑盒问题”。调用链的核心价值是 “打破调用链路的信息割裂,实现全流程可观测”,具体作用可归纳为 4 类:

  • 全链路执行路径可视化,解决 “路径黑盒”:在微服务架构中,一次用户请求(如 “下单”)通常需经过 “网关→订单服务→库存服务→支付服务→数据库” 等多个节点,传统日志仅能记录单个节点的局部信息,无法串联全流程。
  • 性能瓶颈精准定位,拆解 “耗时黑盒”:当接口响应慢(如 “下单接口耗时 500ms”)时,传统监控仅能看到 “总耗时”,无法拆解 “各节点耗时占比”。调用链会记录每个调用节点的执行耗时(如 “网关转发 10ms→订单服务处理 100ms→库存服务调用 200ms→支付服务调用 150ms→数据库操作 40ms”),并通过 “耗时排序”“热力标注”(如红色标注耗时超阈值的节点)快速定位瓶颈
  • 故障根因快速溯源,解决 “故障黑盒”:分布式系统中,故障常呈现 “连锁反应”(如 “支付服务超时→订单服务调用失败→用户下单报错”),单服务日志仅能看到 “自身报错”,无法追溯故障源头。调用链通过 “链路状态关联”(如红色标记失败节点、黄色标记警告节点),从 “最终报错节点” 反向追溯
  • 调用上下文统一聚合,避免 “信息割裂”:一次请求的执行过程中,会产生 “业务上下文”(如用户 ID、订单号、请求参数)、“系统上下文”(如服务器 IP、服务版本、线程 ID)、“异常上下文”(如错误码、异常堆栈)等分散信息,传统日志需跨服务、跨文件拼接,效率极低。

使用场景

  • 微服务 / 分布式系统故障排查:请求跨多个服务、多台服务器,故障时告警多(如 “订单服务报错”“库存服务超时” 同时触发),无法快速定位源头
  • 复杂接口性能瓶颈优化:核心业务接口(如 “商品详情查询”)响应慢,且涉及 “本地缓存→服务调用→数据库查询→第三方接口” 等多环节,无法判断耗时集中在哪一步
  • 跨环境调用一致性验证:测试环境接口正常,但生产环境偶发失败(如 “测试环境下单正常,生产环境部分用户下单失败”),因环境差异(数据量、并发量、依赖服务状态)无法复现
  • 服务依赖与调用关系梳理:微服务数量多(如 50 + 服务),随业务迭代依赖关系持续变化,运维团队无法清晰掌握 “服务间谁调用谁”,变更时易遗漏依赖方
  • 分布式追踪与合规审计:金融、电商等行业需满足 “请求可追溯” 合规要求(如 “每笔支付需记录完整调用路径,用于事后审计”),或需追踪 “异常请求的全流程操作”(如 “用户投诉‘付款后未收到订单’,需验证支付是否成功、订单是否创建”)

开始使用

1、进入观测洞察 -> 检索中心 -> 调用链页面,当前页面展示调用链列表。支持通过错误,慢,很慢状态标识调用链,可快速过滤异常调用链。 trace1 2、单击某一个具体的调用链可查看调用链详情,调用链支持瀑布图、树状图两种样式查看,以下内容主要介绍瀑布图的展示内容。 trace2 瀑布图

1)调用链详情提供接口级的瀑布图,可以快速查看接口之间的调用关系。调用链右侧的横条可以快速指出每个接口的请求顺序和响应时间。 trace3 2)对于一些比较长的调用链,存在难定位的问题,平台支持快速定位过滤功能,您可以基于搜索过滤组件,快速定位调用链中自身执行耗时最长、错误、同步调用、异步调用、数据库、关键方法、消息队列、NoSQL、第三方接口调用节点,支持上下切换节点。支持针对名称、URL、SQL、参数搜索,支持上下切换节点。

3)对于DEM和APM打通的情况,调用链的第一条数据代表终端网络请求,可以通过查看终端网络请求横条的开始时间与服务端接口开始响应的时间差,快速定位响应耗时是服务端还是客户端。

  • 可以查看该对象的详细信息,如:元数据、请求头、响应头、请求参数等。 trace4
  • 可以查看该对象的细粒度时间信息,对于终端网络请求,支持拆分为DNS用时、TCP用时、SSL用时、服务端响应时间、接收用时。对于服务端接口,支持拆分到CPU时间粒度。 trace5
  • 代码栈显示该接口下方法调用关系,深度代码级的追踪和诊断工具帮助运维团队快速定位问题根因,降低MTTR。详细的 SQL 语句和代码性能剖析为研发团队优化业务表现实现快速迭代提供可靠的数据支撑。 trace6
  • 可以查看单个请求的日志信息。 trace7
  • 可以查看单个请求的错误异常。 trace8