Elasticsearch: Узнать EPS

По умолчанию Elasticsearch не сообщает количество документов записываемых документов. В заметке пример скрипта для подсчета количества записываемых документов (EPS).

Для работы скрипта требуется установленный jq

в Debian\Ubuntu

apt install jq

в CentOS требуется epel, установка

yum install jq

Elasticsearch запивает документы в индекс с задержкой указанной в settings.index.refresh_interval, это необходимо для оптимизации.

Количество документов можно получить из параметра _count кластеру.

Средний EPS будет является количество документов записанных в Elasticsearch за refresh_interval

#!/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"

Добавить комментарий