Mackerelのグラフを端末で見れたらいいなと思ったので作ってみました。
使い方
$ go get github.com/itchyny/mkrg/cmd/mkrg $ mkrg
コマンドを叩くと、そのホストのメトリックを取ってきてグラフを表示します。 何も考えずにコマンドを叩けば、システムメトリックのグラフを表示してくれます。 私はiTerm2を使っているので、とりあえずiTerm2では画像を表示できるようにしています。それ以外の端末では点字を使って頑張って表示します。
似たような目的のコマンドとしては、同僚の作ったmkr-graphというコマンドがあります。 medium.com
実装
Mackerelは各種APIを揃えていて、中でもメトリックを取得するAPIを使うと、時系列データを引くことができます。 Mackerelのweb画面を見ながら必要なメトリックを調べて、データを引っ張ってきて、グラフに表示すれば完成です。
iTerm2での画像の表示は以下のページを見れば分かります。画像データをbase64で出力するだけなので、とても簡単です。 www.iterm2.com
一応Sixel用の実装も用意してますが動作は見てません。
点字の文字コードですが、Braille Patterns - Wikipediaを読めばわかるように、\u2800
をベースにして各点に対してビットを立てれば狙ったパターンの文字コードを得ることができます。ユニコードできちんと並んでいて助かります。
言語はGoを使っています。便利な言語です。
今後
一昨日から作りはじめてシュッと動いてくれてわりと満足しています。カスタムメトリックのグラフやロールグラフ、サービスメトリックのグラフなんかも表示できると楽しいかもしれません。
個人的には、iTerm2の画像を表示するAPIがすごい単純だということがわかったのが一番の収穫でした。
宣伝
はてなではシステムのメトリクスを見るのが好きなエンジニアを募集しています。