Edited at

HRForecastでKPI可視化(してみようと思った)

More than 5 years have passed since last update.

スクリーンショット 2014-02-23 22.53.10.png

とあるサービスの開発運用マンをしているわけですが、施策を出した後の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でエラーがでてモジュールをインストールできなかったところ以外はサクッと行けた。