По умолчанию Elasticsearch не сообщает количество документов записываемых документов. В заметке пример скрипта для подсчета количества записываемых документов (EPS).
Для работы скрипта требуется установленный jq
в Debian\Ubuntu
1 | apt install jq |
в CentOS требуется epel, установка
1 | yum install jq |
Elasticsearch запивает документы в индекс с задержкой указанной в settings.index.refresh_interval, это необходимо для оптимизации.
Количество документов можно получить из параметра _count кластеру.
Средний EPS будет является количество документов записанных в Elasticsearch за refresh_interval
1 2 3 4 5 6 7 8 | #!/bin/bash TIMEOUT=$(curl -sS -XGET 'localhost:9200/_settings'|jq .[0].settings.index.refresh_interval | sed 's/[^0-9]*//g') COUNT1=$(curl -sS http://localhost:9200/_count|jq .count) sleep $TIMEOUT COUNT2=$(curl -sS http://localhost:9200/_count|jq .count) eps=$(( ($COUNT2 - $COUNT1) / $TIMEOUT )) echo "eps: $eps" |