ずいぶん前から作って動かしてはいるのですが、GrowthForecastの他にもうひとつのグラフ作成ツールを公開しています。
https://github.com/kazeburo/HRForecast
デイリーで更新される数値のビジュアライズに使う事が出来ます。GrowthForecastにはない過去データの登録もできます。
モリスさんのスライドでも少し登場しています。弊社では主にHiveでの集計の書き出し先として使っています
http://www.slideshare.net/tagomoris/log-analysis-with-hadoop-in-livedoor-2013
画面はこんな感じ
他のページにembedするHTMLの発行やCSVでダウンロードをサポートしています
データの登録APIについて
データの登録は、GrowthForecastと同じようにURIに対してPOSTリクエストを行います。
http://localhost:5127/api/:service_name/:section_name/:graph_name
に対して、numberとdatetimeのパラメータを付けてリクエストします。
とあるサービスの2013年2月6日のPCから閲覧数を登録したい時、
my $ua = LWP::UserAgent->new;
$ua->post('http://localhost:5127/api/awesomeservice/pv/pc', {
number => 1_000_000,
datetime => '2013-02-06 00:00:00'
});
となります。
HRForecastの最小の更新単位は1時間です。1時間未満のdatetimeは切り捨てられます。2013-02-06 16:23:40 は 16時のデータとして扱われます。
セットアップ方法
HRForecastはデータストアとしてMySQLを利用します
今のところソースコードはgithubから取得してください
$ git clone git://github.com/kazeburo/HRForecast.git
依存モジュールのインストール
$ cd HRForecast
$ cpanm -n -lextlib --installdeps .
MySQLにテーブル作成
mysql> create database hrforecast
$ cat schema.sql | mysql hrforecast
設定ファイルの編集
$ vim config.pl
{
dsn => 'dbi:mysql:hrforecast;hostname=127.0.0.1',
username => '', #dbのユーザ名
password => '', #dbのパスワード
port => '5127', #bindするport
host => '127.0.0.1', #bindするIP
front_proxy => [],
allow_from => [],
};
環境に合わせて編集します。
そして起動
perl hrforecast.pl --config config.pl
ブラウザで指定したポートが見れればセットアップ完了です。
こんな複合グラフも作れます