CloudForecastでQudoのたまってるJobQueueの量をグラフ化するやつ
JobQueueがいくつたまってるか可視化したくて作りました。ソースはgist。
以下のエントリを参考にして作りました。
CloudForecastのリソース監視定義モジュールの作り方 - blog.nomadscafe.jp
cloudforecastって何?
id:kazeburoさんが開発されているリソースモニタリングツールです。rrdtoolsの薄いラッパーとして動作していて、ソースはモダンなPerlで読みやすいわ拡張しやすいわですばらしいプロダクトです。rrdtoolsについてちょっと知ってれば使えると思います。
下記エントリが詳しいです。
YAPC::Asia 2010 Tokyo で CloudForecast について喋ってきた - blog.nomadscafe.jp
使いかた
/path/to/cloudforecast/site_lib/CloudForecast/Data/Qudo.pmに置いて、host_configのresorcesの中で以下の感じでつっこめば使えます。
resources: - qudo:<dsn>:<username>:<password>:<job>
dsnは":"を"_"に、jobは"::"を"_"に置き換えたものを書いてください。例えば、qudoのdbへアクセスするためのdsnが "DBI:mysql:qudo:localhost"であれば、"DBI_mysql_qudo_localhost"、カウントしたいjobのWorkerがMyApp::Worker::Jobだったら"MyApp_Worker_Job"のような感じです。
CloudForecastが動いているマシンから直接qudoのDBを読みにいくという動きをします。
ぼくの場合はAppServerの動いてるマシンがWorkerもかねてて、自分でenqueueしたjobは自分でworkするという構成にしている(それぞれのAppServerのローカルでQudoのためだけにMySQLが動いていてそこにenqueue,dequeueしてる)ので、app_servers監視用のリソース定義ファイルの中にこれらの設定をつっこんでいます。
そんな感じです。