查询不到所需的调用链

问题描述

在服务网格中查询调用链时,可能会遇到无法检索到目标调用链的情况。

根因分析

1. 调用链采样率配置过低

当调用链的采样率参数设置过低时,系统仅会按比例采集调用链数据。在请求量不足或低峰时段,这可能会导致采样数据量低于可见阈值。

2. Elasticsearch 实时性限制

Elasticsearch 索引的默认配置为 "refresh_interval": "10s",这导致数据从内存缓冲区刷新到可搜索状态的延迟为10秒。在查询最近生成的调用链时,可能由于数据尚未持久化,结果可能会缺失。

这种索引配置可以有效减少 Elasticsearch 的数据合并压力,提升索引速度和首次查询速度,但也在一定程度上降低了数据的实时性。

根因1的解决方案

  • 根据需求适当提高采样率。
  • 使用更丰富的采样方式,如尾部采样。

根因2的解决方案

通过 jaeger-collector--es.asm.index-refresh-interval 启动参数来调整刷新间隔,默认值为 10s

如果该参数的值为 "null",则不会对索引的 refresh_interval 进行配置。

:配置为 "null" 时,会影响 Elasticsearch 的性能和查询速度。