调用链数据不完整

问题描述

调用链查询结果出现以下数据不完整现象:

  • 近期(30分钟内)查询结果缺失部分跨度。
  • 超过 1 小时的调用链出现断链现象。

根因分析

1. 数据持久化延迟

Elasticsearch 的写入过程需要经过内存缓冲区(buffer)→ 操作日志(translog)→ 段文件(segment)的处理流程,最新写入的数据可能存在可见性延迟。

2. 时间范围限制

默认情况下,jaeger-query 查询跨度对应的调用链时,时间范围会在跨度的起始时间前后各延伸一个小时。

例如,某个跨度的起始时间为 08:12:30,结束时间为 08:12:32,则查询该调用链的时间范围为 07:12:3009:12:32

因此,若调用链跨度超过 1 小时,通过此跨度进行查询时,可能无法获得完整的调用链。

根因1的解决方案

稍作等待并刷新页面重新尝试查询。

根因2的解决方案

如果您环境中的调用链跨度较长,可以通过 jaeger-query--es.asm.span-trace-query-time-adjustment-hours 启动参数来调整单个调用链的查询时间范围。

该参数默认值为 1 小时,您可以根据需求适当增大该值。