文档首页/ 应用性能管理 APM/ 常见问题(2.0)/ JavaAgent接入常见问题/ 查看调用链详情时报错的原因是什么?
更新时间:2025-09-25 GMT+08:00
分享

查看调用链详情时报错的原因是什么?

问题现象:从指标的异常页面单击“查看调用链详情”按钮,进入调用链页面后报错。没有拓扑图,调用链列表的根span被标记为fake;或即没有拓扑图也没有调用链列表。

上报指标时,如果有异常错误等,会取TraceId记入到指标中进行上报。此时前端就会看到有“查看调用链详情”的按钮。单击“查看调用链详情”的按钮后,按照TraceId查询调用链详情。但是,如果调用链最终没有上报成功,就会出现此错误。该问题有两种现象:

  1. 看不到拓扑图能看到调用链列表,但是根调用链是fake填充的。
  2. 拓扑图和调用链列表都看不到。

这是因为如果此调用链的子span上报成功,根span没有上报成功,就是现象1;如果没有子span,或者子span和根span都没有上报,就是现象2。

解决方案:

  1. 查看apm.log通常能看到异常打印,如版本不兼容等如下。

  2. 如果apm.log中没有异常信息,分析是否是必现的问题。如果问题是必现的,通常是客户端问题;如果不是必现的,也可能是后台数据丢失。
  3. 如果问题必现且探针侧没有异常日志,可能是客户的服务会在对应组件的拦截函数处理结束后,清理threadLocal导致。下图为某客户的jetty框架,在handle函数内部,会在最后一步清空整个线程的threadLocal,导致探针无法上报调用链的根span。

相关文档