Solr 4用のMuninプラグインを書いた

Solr 3までは solrmulticore というプラグインを使っていたのですが、Solr 4.0以降動かなくなっていたので、Muninプラグインの書き方を調べて自分で書いてみました。

munin-solr4-multicore

Rubyで書いたのですが、書き方自体は別エントリで書くことにして、このプラグインの使い方を書いておきます。

インストール

cd /usr/share/munin/plugins/
sudo wget https://raw.github.com/hiroki23/munin-solr4-multicore/master/solr4_multicore_
sudo chmod 755 solr4_multicore_

先頭のrubyパス (#!/usr/local/bin/ruby) は、環境に合わせて修正してください。

sudo vi solr4_multicore_

Rubyのパスは、which rubyで確認できますね。)

シンボリックリンクを作成します。

sudo ln -s /usr/share/munin/plugins/solr4_multicore_ /etc/munin/plugins/solr4_multicore_999thPcRequestTime

munin-nodeをrestartします。

sudo /etc/init.d/munin-node restart

この例では、99.9%番目のリクエスト時間のグラフが生成されます。

取得できる値

同じようにシンボリックリンクを作ることで、以下のような値が取れます。

  • avgRequestsPerSecond
  • 5minRateReqsPerSecond
  • 15minRateReqsPerSecond
  • avgTimePerRequest
  • medianRequestTime
  • 75thPcRequestTime
  • 95thPcRequestTime
  • 99thPcRequestTime
  • 999thPcRequestTime
  • errors
  • timeouts

など。

sudo ln -s /usr/share/munin/plugins/solr4_multicore_ /etc/munin/plugins/solr4_multicore_{取りたい値}

Solr4.1までは、req/sec、time/reqは、avgRequestsPerSecondやavgTimePerRequestしか取れなかったのですが、Solr4.2以降は5分ごと、15分ごとのreq/sec、平均time/req、75%、95%、99%、99.9%番目のtime/reqが取得できるようになって、ますます便利になりました。

同様にシンボリックリンクを作成することで、以下のキャッシュのキャッシュヒット率も取ることができます。

  • queryResultCache
  • documentCache
  • fieldValueCache
  • filterCache

画面キャプチャ

設定がうまくいけば、以下のようなグラフが生成されます。

5minRateReqsPerSecond
f:id:hiroki23:20130529003800p:plain

99thPcRequestTime
f:id:hiroki23:20130529003803p:plain

documentCache
f:id:hiroki23:20130529004321p:plain