久しぶりにcloudforecastの本体に機能追加

グラフ作成時に複数のrrdファイル利用

一つ目は、グラフの定義中に他のrrdのデータを取り込みやすくする為の機能。

今までグラフ定義モジュールのグラフ設定中に

<%RRD%>

と書くと、それを自動的に該当するrrdファイルのパスへ置換していましたが、これを拡張して

<%RRD_FOR サーバIP:リソース名:オプション %>

とすることで他のサーバ、他のグラフのデータを楽に読み込めるようになりました。

この機能を利用したのが以下のグラフ。某サーバ群へのnginxのリクエスト数をstackして表示しています

cf_stack.png

ちなみにグラフ設定はこんな感じ

DEF:cache1=<%RRD_FOR 10.x.x.x:nginx:80:/nginx_status %>:request:AVERAGE
DEF:cache2=<%RRD_FOR 10.x.x.x:nginx:80:/nginx_status %>:request:AVERAGE
DEF:cache3=<%RRD_FOR 10.x.x.x:nginx:80:/nginx_status %>:request:AVERAGE
DEF:cache4=<%RRD_FOR 10.x.x.x:nginx:80:/nginx_status %>:request:AVERAGE
DEF:cache5=<%RRD_FOR 10.x.x.x:nginx:80:/nginx_status %>:request:AVERAGE
DEF:cache6=<%RRD_FOR 10.x.x.x:nginx:80:/nginx_status %>:request:AVERAGE
DEF:cache7=<%RRD_FOR 10.x.x.x:nginx:80:/nginx_status %>:request:AVERAGE
DEF:cache8=<%RRD_FOR 10.x.x.x:nginx:80:/nginx_status %>:request:AVERAGE
DEF:cache9=<%RRD_FOR 10.x.x.x:nginx:80:/nginx_status %>:request:AVERAGE
AREA:cache1#003366:cache1
STACK:cache2#1a4775:cache2
STACK:cache3#315983:cache3
STACK:cache4#466a8f:cache4
STACK:cache5#59799a:cache5
STACK:cache6#6a86a4:cache6
STACK:cache7#7992ad:cache7
STACK:cache8#869db5:cache8
STACK:cache9#92a7bc:cache9

プラグイン(リソース定義モジュール)を作成する必要がありますが、これで合計値などのグラフ作成が可能となりました。

rrdupdate時のtimestamp指定

もう一つの機能追加はrrdupdateする際のtimestampの指定。

他のところで集計されたデータをcloudforecastに取り込む際に、そのデータが5分、10分前のものとなる可能性があります。いままでcloudforecastは収集されたデータを常に現在のデータとして扱っていましたが、timestampによっていつの時点のデータなのか指定することができます。

使うには、プラグイン(リソース定義モジュール)のfetcherからデータを戻す際に配列をもう一回配列でラップし、2番目の要素にtimestampを入れます

fetcher {
    my $c = shift;
    my $res = $ua->get(..);
    ...
    return [[$in,$out],time-600];
};

上記の例では、保存するデータは600秒(10分)前のものとなります。timestampに使える形式は、rrdupdateのドキュメントを確認してください。

livedoorではこの2つの機能を使って、CDNと自社トラフィックのグラフをあわせて表示したりしています。



kansai.pmでもcloudforecastのことを少し話す予定です〜

このブログ記事について

このページは、Masahiro Naganoが2011年11月15日 13:11に書いたブログ記事です。

ひとつ前のブログ記事は「WEB+DB PRESS Vol.65 Perl Hackers Hubに寄稿しました 」です。

次のブログ記事は「ISUCONのサンプルアプリケーションのフレームワークだったKossyを単独ディストリビューションにした 」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

OpenID対応しています OpenIDについて
Powered by Movable Type 4.27-ja