不完整的 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:3009:12:32

因此,如果 Trace 跨越超过 1 小时,通过该 span 查询可能无法获得完整的 Trace。

根因 1 的解决方案

等待片刻后刷新页面,重新尝试查询。

根因 2 的解决方案

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

该参数的默认值为 1 小时,您可以根据需要增加该值。