繁体   English   中英

Elasticsearch:每秒搜索操作数

[英]Elasticsearch : Number of search operation per second

我正在寻找一种方法来获取节点(和/或所有节点)上每秒的搜索操作数量。

没有Marvel插件,有没有办法获取此信息? 我的ElasticSearch版本是0.90.11

奇迹通过采样做到了。 如果您编写脚本以重复运行curl http://localhost:9200/_stats/search并解析如下所示的结果:

...
  "_all" : {
    "primaries" : {
      "search" : {
        "open_contexts" : 0,
        "query_total" : 51556,
        "query_time_in_millis" : 2339958,
        "query_current" : 0,
        "fetch_total" : 8276,
        "fetch_time_in_millis" : 34916,
        "fetch_current" : 0
      }
    },
    "total" : {
      "search" : {
        "open_contexts" : 0,
        "query_total" : 73703,
        "query_time_in_millis" : 2773745,
        "query_current" : 0,
        "fetch_total" : 10428,
        "fetch_time_in_millis" : 45570,
        "fetch_current" : 0
      }
    }
  },
...

您可以看到query_total值-只是每隔一段时间重复查询一次,然后进行数学计算。

谢谢阿尔坎萨尔。 这是我创建的脚本:

if [[ $1 == "" ]]
then
        echo "Usage : $0 <refresh_interval_in second>"
        echo "Example : ./$0 10"
        exit 1
fi

refresh_interval=$1

while true; do
begin=$(curl --silent http://localhost:9200/_stats/search?pretty | grep '"query_total" :' | sed -n 2p | sed 's/,$//' | awk '{print $3}')
sleep $refresh_interval
end=$(curl --silent http://localhost:9200/_stats/search?pretty | grep '"query_total" :' | sed -n 2p | sed 's/,$//' | awk '{print $3}')
total=$(echo $(((( $end - $begin )) / $refresh_interval)))
echo $(date +"[%T] ")"Search ops/sec : "$total
done

例如,每10秒刷新一次,执行: sh script.sh 10

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM