mackerel-plugin-elasticsearch-cluster-stats をつくった

Mackerel アンバサダーに就任したので mackerel-plugin-elasticsearch-cluster-stats をつくった。

github.com

背景

Mackerel の AWS インテグレーションで Amazon Elasticsearch Service を監視しているけど、対応しているメトリックでは fielddata や Query Cache がどれぐらいメモリーを確認することが出来ない状態である。CloudWatch でこれらのメトリックが取得できるようになれば良いのだけど……。

mackerel-plugin-elasticsearch を使う方法も考えたけど、このプラグインは Amazon Elasticsearch Service が対応していない Node Stats でメトリックを取得しているため、このプラグインを使うことを断念した。

Node Stats と同様のメトリックが取得できそうである Cluster Stats は Amazon Elasticsearch Service で対応しているので、Cluster Stats から必要なメトリックを取得するプラグインを作成することにした。

使い方

mkr plugin install でインストールできるようになっているので、このプラグインを実行するサーバーで下記のコマンドを実行する。

$ mkr plugin install mackerel-plugin-elasticsearch-cluster-stats

Mackerel エージェントの設定ファイルに下記を追加する。

[plugin.metrics.elasticsearch-cluster-stats]
command = "/opt/mackerel-agent/plugins/bin/mackerel-plugin-elasticsearch-cluster-stats [-scheme=<'http'|'https'>] [-host=<host>] [-port=<port>] [-metric-key-prefix=<prefix>] [-tempfile=<tempfile>]"

Mackerel エージェントを再起動して、しばらくすると下記のような感じでグラフが作成されるはずである。

f:id:holidayworking:20190221195838p:plain