4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

全文検索エンジンGroongaで対応したMuninワイルドカードプラグインとは

Last updated at Posted at 2014-01-09

昨年11/29に全文検索エンジンGroongaを囲む夕べ4を開催しました。発表資料へのリンクもまとめています。隔週連載Groongaも参考になりますよ。
イベントレポートも昨年末に「全文検索エンジンGroongaを囲む夕べ 4」レポートとして公開されましたね。

はじめに

オープンソースのカラムストア機能付き全文検索エンジンGroongaを公開しています。この記事を書いたときの最新のバージョンは2013年12月29日にリリースした3.1.1です。

今回は、全文検索エンジンGroongaで対応したMuninワイルドカードプラグインの紹介をします。

GroongaのMuninプラグインをワイルドカード対応した背景

全文検索エンジンであるGroongaでは、Muninプラグインのパッケージがあります。

そのあたりの導入方法については全文検索エンジンGroongaの状態をMuninプラグインで確認するにはとしてエントリを書きました。

その後、Groonga 3.1.1のリリースで該当エントリを書いたときの次の問題点をMuninワイルドカードプラグインにすることで修正しました。

  • GQTPのポート番号変更に対応していない
  • GQTPにしか対応していない

Muninプラグイン新旧の対応

Groonga 3.1.0以前では、次のようなMuninプラグインを提供していました。

旧プラグイン 説明
groonga_cpu_load CPU使用率情報
groonga_cpu_time 一日におけるCPU負荷情報
groonga_disk テーブルのディスク使用比率情報
groonga_memory メモリ使用量情報
groonga_n_records レコード数情報
groonga_query_performance クエリ実行時間の平均、中央値情報
groonga_status statusコマンド情報
groonga_throughput 実行できたクエリ数情報

Groonga 3.1.1以降では、GQTPだけでなく、HTTP向けのプラグインも提供するようになりました。
それにともない、個々のプラグイン名も変更しています。プラグイン名の末尾にプロトコルが付与されていることがわかります。

  • groonga_cpu_load_gqtp
  • groonga_cpu_time_gqtp
  • groonga_disk_gqtp
  • groonga_memory_gqtp
  • groonga_n_records_gqtp
  • groonga_query_performance_gqtp
  • groonga_status_gqtp
  • groonga_throughput_gqtp
  • groonga_cpu_load_http
  • groonga_cpu_time_http
  • groonga_disk_http
  • groonga_memory_http
  • groonga_n_records_http
  • groonga_query_performance_http
  • groonga_status_http
  • groonga_throughput_http

Muninワイルドカードプラグインの実体

プラグインはプロトコル別ですが、実体は一緒でシンボリックリンクで実現されています。
これは、GQTPとHTTPでそれほどプラグインそのものの内容に違いがないので、プロトコル設定で動作を切り替えられるようにしているためです。

ワイルドカードプラグインとはこのような1つのプラグインで複数のグラフの情報を収集できるプラグインのことです。

lrwxrwxrwx 1 root root 42  1月  9 11:23 groonga_cpu_load_gqtp -> /usr/share/munin/plugins/groonga_cpu_load_
lrwxrwxrwx 1 root root 42  1月  9 11:23 groonga_cpu_load_http -> /usr/share/munin/plugins/groonga_cpu_load_
lrwxrwxrwx 1 root root 42  1月  9 11:23 groonga_cpu_time_gqtp -> /usr/share/munin/plugins/groonga_cpu_time_
lrwxrwxrwx 1 root root 42  1月  9 11:23 groonga_cpu_time_http -> /usr/share/munin/plugins/groonga_cpu_time_
lrwxrwxrwx 1 root root 38  1月  9 11:23 groonga_disk_gqtp -> /usr/share/munin/plugins/groonga_disk_
lrwxrwxrwx 1 root root 38  1月  9 11:23 groonga_disk_http -> /usr/share/munin/plugins/groonga_disk_
lrwxrwxrwx 1 root root 40  1月  9 11:23 groonga_memory_gqtp -> /usr/share/munin/plugins/groonga_memory_
lrwxrwxrwx 1 root root 40  1月  9 11:23 groonga_memory_http -> /usr/share/munin/plugins/groonga_memory_
lrwxrwxrwx 1 root root 43  1月  9 11:23 groonga_n_records_gqtp -> /usr/share/munin/plugins/groonga_n_records_
lrwxrwxrwx 1 root root 43  1月  9 11:23 groonga_n_records_http -> /usr/share/munin/plugins/groonga_n_records_
lrwxrwxrwx 1 root root 51  1月  9 11:23 groonga_query_performance_gqtp -> /usr/share/munin/plugins/groonga_query_performance_
lrwxrwxrwx 1 root root 51  1月  9 11:23 groonga_query_performance_http -> /usr/share/munin/plugins/groonga_query_performance_
lrwxrwxrwx 1 root root 40  1月  9 11:23 groonga_status_gqtp -> /usr/share/munin/plugins/groonga_status_
lrwxrwxrwx 1 root root 40  1月  9 11:23 groonga_status_http -> /usr/share/munin/plugins/groonga_status_
lrwxrwxrwx 1 root root 44  1月  9 11:23 groonga_throughput_gqtp -> /usr/share/munin/plugins/groonga_throughput_
lrwxrwxrwx 1 root root 44  1月  9 11:23 groonga_throughput_http -> /usr/share/munin/plugins/groonga_throughput_

ワイルドカードプラグインかどうかはsuggestを引数にmunin-node-configureに与えることでもわかります。

% sudo munin-node-configure --suggest
[sudo] password for khayashi: 
Plugin                     | Used | Suggestions                            
------                     | ---- | -----------                            
groonga_cpu_load_          | yes  | yes (gqtp http)                        
groonga_cpu_time_          | yes  | yes (gqtp http)                        
groonga_disk_              | yes  | yes (gqtp http)                        
groonga_memory_            | yes  | yes (gqtp http)                        
groonga_n_records_         | yes  | yes (gqtp http)                        
groonga_query_performance_ | yes  | yes (gqtp http)                        
groonga_status_            | yes  | yes (gqtp http)                        
groonga_throughput_        | yes  | yes (gqtp http)                        

ワイルドカードプラグインでは、以下を満す必要があります。

  • ファイル名末尾が_であること
  • capabilitiesのsuggestマジックコメントがあること
  • suggest引数を与えて実行するとサポート対象を出力すること

ファイル名についてはすでに述べました。マジックコメントは例えば次のような内容にします。

#!/bin/sh

#%# family=auto
#%# capabilities=autoconf suggest

suggest引数への対応では次のようにして"gqtp"と"http"に対応していることを明示します。

   suggest)
        echo "gqtp"
        echo "http"
        exit 0
        ;;

これで、GroongaもMuninワイルドカードプラグイン化することができました。

まとめ

今回は、Groongaで対応したMuninワイルドカードプラグインの紹介しました。

Groongaに興味を持ったなら、まずはインストールして試してみてください。

Groongaの基本的な動作を知るためのチュートリアルもあります。インストールしたら試してみてください。

Muninプラグイン関連の話はククログにもあるので、参考にしてみてください。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?