nabeo がピーしているブログ (仮)

どーも、nabeop です

mkr の emacs-helm インターフェースを作ってみた

helm て何

世間では k8s が流行ているので、helm といったら、k8s のパッケージシステムの helm が一般的になりつつあって少し残念な気分になっています。

emacs の世界で helm というと、こちら。僕も emacs で生活しているので、しょっちゅう helm のお世話になっている。helm が使えなくなると、仕事の効率が激しく落ちてしまうレベルで依存しています。ここでは helm というと混乱しそうなので、emacs-helm と記述することにします。

mkr の出力を emacs-helm でも扱いたい

対して、mackerel.io も無くなったら途方にくれるレベルで仕事に使っているので、emacs の中から mackerel.io に登録しているホストのメトリクス情報や監視結果を参照できるようにしたいなー、と思っていた。

mackerel.io には mkr というナイスな CLI ツールがあるので、この出力を emacs-helm に食べさせてよしなに扱えればとりあえず目的は達成できそう。mkr は結果を json 形式で出力してくれる。emacsjson データの扱い方がわからなかったので、そのままにしていたんだけど、ある日、helm-aws というパッケージを見ていると、そのものズバリな感じで扱っていたので、やる気が出てきた。

作った

というわけで、エイヤーと作ってみたので、github.com に公開してみます。melpa.org には登録していないので、以下のように emacs の load-path が通ったところにレポジトリごと git clone してください。

git clone https://github.com/nabeo/helm-mkr.git path/to/emacsd/site-lisp/helm-mkr

mkr を使える環境を整えて、~/.emacs.d/init.el とかに以下のように書いておいてください。

(require 'helm-mkr)
(setq mkr-org "your mackerelio org name")

mkr-org は mackerel.io の URL にはオーガニゼーションの文字列が含まれるので、自身のアカウントが所属しているオーガニゼーション名をいれておく必要があります。

ここまで準備が整ったら、M-x helm-mkr*helm-mkr* バッファに mackerel で管理しているホストの一覧が出ててきます。

今の所、デフォルトのアクションは選択したホストのホスト名をコピーします。アクションの候補として、browse-url 経由で選択したホストで収集されたメトリクスページに移動できるアクションを登録しています。

現状ではこんな感じだけでど、アラートのリストまで取れるようになったら(あと、要望とかあれば)、mepla.org とか emacs のパッケージ配布サイトに登録して手軽に使えるようにしたい。