不完整的追踪数据

问题描述

追踪查询结果显示以下不完整数据的问题:

  • 最近的查询(过去 30 分钟内)缺少某些跨度。
  • 超过 1 小时的追踪数据出现连接中断。

根本原因分析

1. 数据持久化延迟

Elasticsearch 中的写入过程需要经过一系列步骤,包括内存缓冲区 → 转录日志 → 段文件,这可能导致最近写入的数据出现可见性延迟。

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 小时,您可以根据需要增加该值。