使用analytic-search插件

更新时间:
复制为 MD 格式

analytic-search插件是阿里云Elasticsearch团队自主开发的日志场景检索插件,提供Kibana Discover查询加速和查询并发两项功能,适用于日志检索和分析场景。

使用须知

analytic-search插件为系统默认插件,默认已安装且不可卸载,可在插件配置页面查看。使用该插件需要实例版本为7.10.0,内核版本为1.7.0及以上。

Kibana Discover查询加速

通过优化索引合并策略及Date_histogram执行计划策略,在没有查询条件或仅有一个查询条件时,大幅降低查询耗时。适用于日志检索场景,例如Kibana Discover中的无条件或单条件查询。

性能参考

测试环境:10 * 1664 GB节点。某业务日志数据,一天600亿个文档,分成12个索引,每个索引60个分片。

查询条件

SSD云盘

高效云盘

OpenStore存储

没有查询条件

耗时降低96%

耗时降低95%

耗时降低94%

一个查询条件

耗时降低88%

耗时降低77%

耗时降低85%

多个查询条件

耗时降低8%

耗时降低11%

耗时降低14%

开启Kibana Discover查询加速

创建索引时,在settings中配置index.sort按时间戳字段降序排列。以下示例仅供参考,实际使用时需按照业务字段名称调整时间戳字段名和排序。

PUT test_log
{
  "settings": {
    "index.points.same_sort_order_as_index_sort": true,
    "index.sort.field": [
      "@timestamp"
    ],
    "index.sort.order": [
      "desc"
    ]
  },
  "mappings": {
    "properties": {
      "@timestamp": {
        "type": "date"
      }
    }
  }
}

查询并发功能

通过实现召回过程的并发,提高资源利用率,召回阶段平均耗时降低50%。适用于查询QPS低、查询召回阶段耗时高、节点计算资源充足的场景。

性能参考

测试环境:3 * 1664 GB OpenStore冷热共享计算型节点。某业务日志数据,单索引1.6 TB,60亿个文档,60个分片。查询条件为3TermQuery(and) + TimeRange + Sort + Datehistogram,单shard命中1000w(命中率10%)。

测试结果:

  • shard查询耗时降低65%。

  • shard查询耗时降低53%。

开启查询并发

执行以下命令开启查询并发功能:

PUT _cluster/settings
{
  "persistent": {
    "apack.analytic_search.doc_concurrency.enabled": "true"
  }
}

开启后,新接收到的查询任务将按默认的并发策略执行。可通过以下参数调整并发行为。

集群级别配置

参数

默认值

说明

apack.analytic_search.doc_concurrency.enabled

false

是否开启查询并发功能:true(开启)或false(不开启)。

apack.analytic_search.doc_concurrency.concurrent.policy

80%:4;90%:2

查询并发策略,格式为阈值1:并发度1;阈值2:并发度2。例如80%:4;90%:2表示节点CPU使用率小于80%使用4并发,小于90%使用2并发,大于等于90%不使用并发。

apack.analytic_search.doc_concurrency.min_support_doc

10000

使用查询并发的索引的最少文档数,低于该值则不使用查询并发。

apack.analytic_search.doc_concurrency.min_support_processors

4

使用查询并发的节点的最少核数,低于该值则不使用查询并发。

apack.analytic_search.doc_concurrency.max_support_heap_usage

80%

使用查询并发的节点的最高JVM heap使用率,高于该值则不使用查询并发。

apack.analytic_search.doc_concurrency.max_support_cpu_usage

90

使用查询并发的节点的最高CPU使用率,值为整数表示百分比,高于该值则不使用查询并发。

索引级别配置

参数

默认值

说明

index.apack.analytic_search.doc_concurrency.enabled

true

是否对该索引开启查询并发功能:true(开启)或false(不开启)。