hitode909の日記

以前はプログラミング日記でしたが、今は子育て日記です

BitBarとsparkコマンドで日ごとのエラー数をメニューバーに表示する

ふだん開発してるアプリケーションのエラーの様子を見る仕組みを作って,ふだん便利に暮らせているので紹介します.

BitBarについて

BitBarはメニューバーにいろいろ出せるやつで,コマンドラインの標準出力をそのままメニューバーに表示できる.

getbitbar.com

プラグインを置くディレクトリが用意されていて,シェルスクリプトを置いていく.calコマンドを呼ぶだけのスクリプトを配置するとこんな感じで,そのままカレンダーが出る.

f:id:hitode909:20160817113759p:plain:w300

sparkコマンドについて

sparkコマンドはコマンドラインでスパークラインを表示するもので,標準入力で数字の列を渡すと,数字の列をグラフにして表示してくれる.
数字を正規化してから渡す必要はなくて,なんでもいいから数字を渡すとその形を教えてくれる.

% echo '1 2 3 4 5 6 7 8 9 10' | spark
▁▁▂▃▄▄▅▆▇█
% echo '10 20 30 40 50 60 70 80 90 100' | spark
▁▁▂▃▄▄▅▆▇█
% ruby -e 'puts 1.upto(40).map{|i| (Math.sin(i/2)*100).to_i}.join(" ")' | spark
▄▇▇▇▇▄▄▁▁▁▁▃▃▆▆▇▇▅▅▂▂▁▁▂▂▅▅██▆▆▃▃▁▁▁▁▄▄▇


github.com

エラー数を表示する

日ごとのエラー出た数をそのままスパークラインにしてみる.左が古くて,右が新しい.
それぞれのエラーがこんな感じだとすると,サーバー側は,きのうなにか不調があったのでは,ということが分かる.クライアント側は,最近ちょっとずつ減ってきている,ということが分かる.(このデータは適当にでっちあげたもので,実際に運用しているサービスのデータではないです.)
f:id:hitode909:20160817120325p:plain


以前よりエラーの様子はkibanaで見れるようにしていたので,その裏側のElasticsearchにリクエストを送って,返ってきたJSONをjqで加工して,sparkに渡すだけで完成した.
目視でチェックするのではなく,監視やアラートを入れましょう,という話はあるけど,大事なグラフがいつもどういう形をしているか見ておくのは良いことだと思う.

スパークラインについて

スパークラインは要は小さいグラフで,サイン波は▁▁▃▃▆▆▇▇▅▅▂▂▁▁▂▂▅▅█のようなもので,ノコギリ波は▁▁▂▃▄▄▅▆▇█▁▁▂▃▄▄▅▆▇█のようなものです,みたいに文中に挿入したり,小さいので縦に並べて全体の傾向を眺めたりするのに使える.
この本が詳しい.

Beautiful Evidence

Beautiful Evidence

日本語だと,この本に増井先生がスパークラインを紹介されている章があったと思う.

ビューティフルビジュアライゼーション (THEORY/IN/PRACTICE)

ビューティフルビジュアライゼーション (THEORY/IN/PRACTICE)