ずいぶん前から作って動かしてはいるのですが、GrowthForecastの他にもうひとつのグラフ作成ツールを公開しています。

https://github.com/kazeburo/HRForecast

デイリーで更新される数値のビジュアライズに使う事が出来ます。GrowthForecastにはない過去データの登録もできます。

モリスさんのスライドでも少し登場しています。弊社では主にHiveでの集計の書き出し先として使っています

http://www.slideshare.net/tagomoris/log-analysis-with-hadoop-in-livedoor-2013

画面はこんな感じ

hr_top.png

他のページに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

ブラウザで指定したポートが見れればセットアップ完了です。

hr_total.png

こんな複合グラフも作れます

このブログ記事について

このページは、Masahiro Naganoが2013年2月 6日 17:15に書いたブログ記事です。

ひとつ前のブログ記事は「Plack::Middleware::ServerStatus::Lite が IPv6 サポートしました」です。

次のブログ記事は「数字を出力するコマンドを定期的に実行して、秒間の変化量を memcachedプロトコルで取れるサーバを書いた」です。

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

ウェブページ

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