FAT47の底辺インフラ議事録

学んだことのメモ帳です

様々な値をWebAPI経由でグラフ化できる「GrowthForecast」をインストールしてみた

GrowthForecastとは
WebAPIからグラフを更新できる画期的なツールです。
curlとかで叩くだけで簡単に様々な数値をグラフ化することができます。
割と最近、1分間隔でグラフ更新ができるようになったり、
溜め込んだデータをJSON形式で出力できる機能が追加されたりしたので試してみました。

近いうちに、Fluentdで集めたログをこのGrowthForecastでグラフ化してみる予定です。
ひとまず今日はGrowthForecastのインストールから動作確認まで。

GrowthForecastインストール手順

cpanmのインストール

cd /usr/bin/
curl -LOk http://xrl.us/cpanm
chmod +x cpanm

Alien::RRDToolのインストール

wget http://ftp.yz.yamagata-u.ac.jp/pub/lang/cpan/authors/id/G/GF/GFUJI/Alien-RRDtool-0.02.tar.gz
cpanm Alien-RRDtool-0.02.tar.gz

GrowthForecastインストール

cd /usr/local/
git clone git://github.com/kazeburo/GrowthForecast.git
cd GrowthForecast
cpanm --installdeps .

実行してみる

perl ./growthforecast.pl --port 5125

おや、エラーだ。

Can't locate RRDs.pm in @INC (@INC contains: /tmp/GrowthForecast/lib /tmp/GrowthForecast/extlib/lib/perl5 /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /tmp/GrowthForecast/lib/GrowthForecast/RRD.pm line 6.
BEGIN failed--compilation aborted at /tmp/GrowthForecast/lib/GrowthForecast/RRD.pm line 6.
Compilation failed in require at /tmp/GrowthForecast/lib/GrowthForecast/Web.pm line 9.
BEGIN failed--compilation aborted at /tmp/GrowthForecast/lib/GrowthForecast/Web.pm line 9.
Compilation failed in require at ./growthforecast.pl line 16.
BEGIN failed--compilation aborted at ./growthforecast.pl line 16.

perl-rrdtool入れる

yum -y install perl-rrdtool

もっかい起動

perl ./growthforecast.pl
2012-04-27T14:12:34 [INFO] [short] first updater start in Fri Apr 27 14:13:00 2012 at /usr/local/GrowthForecast/lib/GrowthForecast/Worker.pm line 47
2012-04-27T14:12:35 [INFO] [update] first updater start in Fri Apr 27 14:15:00 2012 at /usr/local/GrowthForecast/lib/GrowthForecast/Worker.pm line 47

うごいた!


確認
http://localhost:5125


グラフを追加

apiを叩くだけ
このルールで叩きます。
URL
http://localhost:5125/api/サービス名/セクション名/グラフ名

パラメータ

number 記録する数値(HTTPステータスコードとかレスポンスタイムとか)
mode 記録のモード。デフォルトgauge。countにすると今入ってる数値に加算していく

例えばこんなかんじ

curl -F number=10 -F mode=gauge http://localhost:5125/api/HogeService/HogeSection/items

確認
なんか追加された!


さっきのコマンドをとりあえずcronに登録してみる

crontab -e
*/1 * * * * /usr/bin/curl -F number=10 -F mode=gauge http://localhost:5125/api/service_name/section_name/name

しばらく待ってからブラウザで確認

確認


でました!

これを使えば色々な数値を簡単にグラフ化することができます。
次回はFluentdのログをいろいろ流しこんでグラフ化してみる予定です。


参考リンク
http://blog.nomadscafe.jp/2012/02/growthforecast1json.html

http://d.hatena.ne.jp/magicalhat/20120403/1333435826

http://blog.nomadscafe.jp/2011/12/growthforecast.html

https://github.com/kazeburo/GrowthForecast

http://d.hatena.ne.jp/nekoruri/20120203/growthforecast