とあるサービスの開発運用マンをしているわけですが、施策を出した後のKPIをリアルタイムに可視化できたらかっこいいかも…と思いHRForecastを使ってグラフにしてみようと思います。 自分でDBにクエリ投げてjson作ってjsでグラフ化するもありですが何よりだるいです。
このツールの凄いところは
- POSTでデータを登録できる。(インターフェースがHTTP)
- インストール、構築が楽(cpanmがさくっと使える程度にPerlあるを知っていれば)
というところにあると思います。
登録したいデータがいくら増えようが、開発運用マンはPOSTでURLを叩くだけでグラフにデータが追加されていきます。グラフの新規作成も作りたいグラフのURLでPOSTを投げることで作られます。
インストールも、MySQLがあれば特にyumとか叩く必要ないのでサーバーを汚さずに構築できます。(cpanmはhomeディレクトリに作られるので特に文句言われることもないはず。不安なら個人ディレクトリに置けばいい)
インストール
インストールした後は、perlを起動するだけで動作します。
あらかじめcpanmをインストールしておく
# HRForecastをダウンロード
cd /path/to/install_dir
git clone https://github.com/kazeburo/HRForecast
cd HRForecast
# 依存関係にあるcpanモジュールをインストール
sudo cpanm --installdeps .
# エラーでて面倒くさくなってきたら--forceオプション追加。多分大体testに失敗しているだけなので問題ないはず
sudo cpanm --installdeps . --force
# mysqlにデータを蓄えていくためのテーブルを作成
mysql -uroot -p test < schema.sql
# DBの接続先とかを設定
vim config.pl
# 起動
perl hrforecast.pl --config ./config.pl &
データ登録
POSTリクエストを行うことで登録できます。コマンドラインから登録したければcurlを使っていけます。
# curlを使ってPOSTリクエストを投げる
curl http://localhost:5127/api/kpi/event/test1 -X POST -d 'number=11&datetime=2014-02-17 00:00:00'
# 標準入力から登録したい場合
echo 'number=11&datetime=2014-02-17 00:00:00' | curl http://localhost:5127/api/kpi/event/test1 -X POST -d @-
cronとかで定期的にデータを送ってあげようと思っています。
大量にデータを登録したい場合はどうすればいいんだろう、POSTを件数分投げる必要があるんでしょうか。DB見た感じだと直接insertとかありっぽそうです。
ほむ、cpanmでエラーがでてモジュールをインストールできなかったところ以外はサクッと行けた。