簡単にグラフ作成できるということでGrowthForCastを使ってみました。
必要そうなパッケージとCPANモジュールをインストール
yum install cairo pixman glib pangocairo cairo-ps cairo-svg cairo-devel pango-devel
git clone git://github.com/kazeburo/GrowthForecast.git
cd GrowthForecast/
cpanm --installdeps .
wget http://search.cpan.org/CPAN/authors/id/G/GF/GFUJI/Alien-RRDtool-0.05.tar.gz
cpanm Alien-RRDtool-0.05.tar.gz
すんなりRRDtoolをインストールできました。
起動
インストールできれば後は簡単
./growthforecast.pl
5125ポートでGrowthForCastが立ち上がりました。 後はAPIに色々投げたりしてグラフ化させればOK!
APIに投げてみる
APIもチュートリアルどおりにやれば問題ないし簡単過ぎる!
use LWP::UserAgent->new;
my $ua = LWP::UserAgent->new;
my $value = 10;
$ua->post("http://localhost:5125/api/type1/type2/type3", { number => $value });
こんな感じで投げるだけでtype1の中のtype2の中のtype3の値が10として記録されます。
例えばabcというサービスのqueueについて定期的に計測します、queue1とqueue2というqueueがあるとしてそれぞれ監視する場合
abc
-queue
|-queue1
-queue2
$ua->post("http://localhost:5125/api/abc/queue/queue1", { number => $value });
$ua->post("http://localhost:5125/api/abc/queue/queue2", { number => $value });
上記のように投げる事でカテゴリごとにまとめてデータを集計できたりするようです。
これだけだと一回きりなのでcronなりdaemonなりで定期的に値を取得してpostします。
見事グラフができました!
その他使い方
またこのグラフ、複数の値も重ねたりできるよう。
右上の「add complex graph」リンクをクリックするとすでにある値とあわせる事ができます。別々の二つの値を組み合わせてみたりも
色とかもクエリによって変えられるみたいだけどなぜかうまくいかなかった
こんな風にもできるので割と複雑なグラフも描画可能なようです。
今はローカルで1日一回エラーログを集計する書き捨てスクリプトを動かしてます。
queueにたまってる数値を監視してどのくらいスパイクがあるかとか見たりするのも面白いですね。
レンタルサーバでこれやるとなると認証なりFireWall設定なりしないとあれですね、これについてはまた今度。