不完整的 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 span 时间较长,可以通过 jaeger-query 启动参数 --es.asm.span-trace-query-time-adjustment-hours 调整单个 Trace 的查询时间范围。

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