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監視用のリソース定義ファイルの中にこれらの設定をつっこんでいます。

そんな感じです。