Doutorバリューカードのポイント残数をMackerelで可視化してみる

【2017/10/20】本ページで紹介しているdvc2mackerel.plの後継を作りました。→ https://github.com/mah-jp/point2mackerel

ドトールのポイント可視化を思いつく

平日はほぼ毎朝の頻度でよく通う、ドトールコーヒーショップ。ここのプリペイドカード「ドトールバリューカード (Doutor Value Card)」を利用しはじめてから、せわしい店頭で現金を扱う必要が無くなり便利になりました。

しかしプリペイドカードって、いくらチャージしてあるか、見えないし覚えてられない。

ふとある朝、「実生活で使うカードの残高等のデータを、サーバ管理・監視ツールとして利用しているMackerelにPOSTできれば、時系列グラフが描けるし、閾値で監視が出来るし、なんか面白いかも?」と思いついた。まあ、職業病というか、意味の薄いライフログな趣味かもしれない。

そして、ドトールバリューカードに関する次のスクリプトを作成、GitHubに置いたのでどうぞ自由にご利用ください。

このスクリプト単体には、Mackerel POST用のJSONを標準出力する機能があります。

$ ./dvc2mackerel.pl -j
[ {"name": "Doutor.Card.Value", "time": 1508343927, "value": 2300}, {"name": "Doutor.Card.Point", "time": 1508343927, "value": 313}, {"name": "Doutor.Card.Total", "time": 1508343927, "value": 2613} ]

データを投稿する実際のPOSTについては、dvc2mackerel.plをcurlと組み合わせている、次のcronの例をご覧ください。

値を自動取得してグラフを描く

ドトールバリューカードの残高・ポイント数を、一定時間ごとにドトールのサイトから自動取得してMackerelへ記録するには、dvc2mackerel.plを、MackerelのAPI Keyを含めて次のようにcron実行すると、実現できます。

# crontab
0,30 * * * * curl https://api.mackerelio.com/api/v0/services/+++++YOUR-SERVICE-NAME+++++/tsdb -H 'X-Api-Key: +++++YOUR-API-KEY+++++' -H 'Content-Type: application/json' -X POST -d "$(/path/to/dvc2mackerel.pl -i /path/to/dvc2mackerel.ini -j)"

いったんMackerelにデータが入ればグラフは自動的に描かれていきます。グラフ設定としては、単位を [integer] に、「Total」のグラフの種類を [塗りつぶし型] に設定変更することで、見やすくなると思います。