日志查询优化

问题描述:
kibana能正常查询出日志,AMO查询失败

Kibana查询结果:

AMO查询结果:


AMO查询日志失败的原因是:

建议AMO日志查询接口参考Kibana日志查询,不能出现Kibana能查询成功,而AMO查询失败的情况

原因分析:

  • es默认没有对fielddata做限制,

indices.fielddata.cache.size: fielddata的最大缓存大小,值可配置节点堆内存的百分比如30%,也可以配置具体的数据大小如12GB,默认无限制

  • 日志查询时排序的字段是 @timestamp_id,这两个字段的所有值会被缓存入fielddata,以便es快速查询。

因此,当数据量较大时,_id很容易使fielddata的大小突破fielddata circuit breat的限制

解决方案:

  • 查询优化:koca-amo-logging 4.2以上版本对排序字段做了优化,由@timestamp + extraSortField两部分组成,其中extraSortField可配置,如koca.amo.es.logging.extraSortField=log.offset
  • fielddata缓存大小做限制,如indices.fielddata.cache.size=30%
1 个赞