查询不到所需的调用链
目录
问题描述
在服务网格中查询调用链时,可能会遇到无法检索到目标调用链的情况。
根因分析
1. 调用链采样率配置过低
当调用链的采样率参数设置过低时,系统仅会按比例采集调用链数据。在请求量不足或低峰时段,这可能会导致采样数据量低于可见阈值。
2. Elasticsearch 实时性限制
Elasticsearch 索引的默认配置为 "refresh_interval": "10s",这导致数据从内存缓冲区刷新到可搜索状态的延迟为10秒。在查询最近生成的调用链时,可能由于数据尚未持久化,结果可能会缺失。
这种索引配置可以有效减少 Elasticsearch 的数据合并压力,提升索引速度和首次查询速度,但也在一定程度上降低了数据的实时性。
根因1的解决方案
- 根据需求适当提高采样率。
- 使用更丰富的采样方式,如尾部采样。
根因2的解决方案
通过 jaeger-collector 的 --es.asm.index-refresh-interval 启动参数来调整刷新间隔,默认值为 10s。
如果该参数的值为 "null",则不会对索引的 refresh_interval 进行配置。
注:配置为 "null" 时,会影响 Elasticsearch 的性能和查询速度。