不完整的 Trace 数据
目录
问题描述
Trace 查询结果存在以下不完整数据的问题:
- 最近的查询(过去 30 分钟内)缺少部分 span。
- 超过 1 小时的 Trace 数据出现断连现象。
根因分析
1. 数据持久化延迟
Elasticsearch 的写入过程需要经过内存缓冲 → translog → segment 文件等多个步骤,导致最新写入的数据存在可见性延迟。
2. 时间范围限制
默认情况下,jaeger-query 查询与 Trace 相关的 span 时,时间范围会延伸到该 span 开始时间前后各一小时。
例如,若某个 span 的开始时间为 08:12:30,结束时间为 08:12:32,则查询该 Trace 的时间范围为 07:12:30 到 09:12:32。
因此,如果 Trace 跨越超过 1 小时,通过该 span 查询可能无法获得完整的 Trace。
针对根因 1 的解决方案
等待片刻后刷新页面,重新尝试查询。
针对根因 2 的解决方案
如果您环境中的 Trace span 时间较长,可以通过 jaeger-query 启动参数 --es.asm.span-trace-query-time-adjustment-hours 调整单个 Trace 的查询时间范围。
该参数默认值为 1 小时,您可以根据需要增加该值。