Mackerelのグラフを端末で見れたらいいなと思ったので作ってみました。
使い方
$ go get -u github.com/itchyny/mkrg/cmd/mkrg
$ mkrg
コマンドを叩くと、そのホストのメトリックを取ってきてグラフを表示します。
何も考えずにコマンドを叩けば、システムメトリックのグラフを表示してくれます。
私はiTerm2を使っているので、とりあえずiTerm2では画像を表示できるようにしています (tmuxを使っていると表示できない問題があります)。それ以外の端末では点字を使って頑張って表示します。
こっちは実装に力を入れていないので見た目も貧弱です (軸くらいは実装しようとは思っています)。
- 作者: 井上大輔,粕谷大輔,杉山広通,田中慎司,坪内佑樹,松木雅幸
- 出版社/メーカー: 技術評論社
- 発売日: 2017/08/26
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
似たような目的のコマンドとしては、同僚の作ったmkr-graphというコマンドがあります。 medium.com
実装
Mackerelは各種APIを揃えていて、中でもメトリックを取得するAPIを使うと、時系列データを引くことができます。 Mackerelのweb画面を見ながら必要なメトリックを調べて、データを引っ張ってきて、グラフに表示すれば完成です。
iTerm2での画像の表示は以下のページを見れば分かります。画像データをbase64で出力するだけなので、とても簡単です。 www.iterm2.com
一応Sixel用の実装も用意してますが動作は見てません。
点字の文字コードですが、Braille Patterns - Wikipediaを読めばわかるように、\u2800
をベースにして各点に対してビットを立てれば狙ったパターンの文字コードを得ることができます。ユニコードできちんと並んでいて助かります。
言語はGoを使っています。便利な言語です。
今後
一昨日から作りはじめてシュッと動いてくれてわりと満足しています。カスタムメトリックのグラフやロールグラフ、サービスメトリックのグラフなんかも表示できると楽しいかもしれません。
個人的には、iTerm2の画像を表示するAPIがすごい単純だということがわかったのが一番の収穫でした。
宣伝
はてなではシステムのメトリクスを見るのが好きなエンジニアを募集しています。