Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

Vimでの作業をKibanaで可視化してみた

$
0
0

はじめに

皆さんが有用な情報をどんどん世界に発信している中、このような無駄以外の何物でもない記事を書いてしまったこと、深く反省しています。

しかし無駄は楽しい。
無駄とわかっていても、やってみたらどうなるだろうという興味に負けてしまいました。

可視化結果

まずは結果から。グラフ化されるとちょっと気持ちいい。

kobito.1429436406.305922.png

ダッシュボードは適当に作ったもので、どのレポジトリでいつどれだけ作業したのか、どのファイルを特に更新しているのか、また更新した行数などを出せるようにしています。

何となく自分で 俺少しは作業したわー感が味わえればそれで良かろうなのです。

これ以降は手法などの解説なので、興味のある方だけどうぞ。

可視化の方法

やったことはとても単純で、以下の通りです。

  1. autocmd を使って発生したイベント毎に情報を収集
  2. 収集したデータを Elasticsearch に記録
  3. Kibana で可視化

データの収集

準備

  1. Elasticsearch, Kibana のセットアップ
    • 他に記事がたくさんあるかと思うので省略
  2. Vim プラグインをインストール

vim-elastic

VimからElasticsearchにデータをPOSTするためだけに適当に作ったプラグインです。
デフォルトでは http://localhost:9200へPOSTするので、変更する場合には g:elastic#urlを設定してください。

let g:elastic#url = 'http://example.com'

vim-yacd

必須ではありません。
個人的に作っているプラグインですが、今回はレポジトリのルートディレクトリを取得するためだけに使っています。
他プラグインでも簡単に取れる情報だと思いますが、作ったから使ったというだけです。

vim-spy

今回の可視化の主役プラグインです。
autocmd を使って情報を取得し、vim-elastic 経由で Elasticsearch にデータをPOSTします。
POST先の Index, Type は以下の通りです。

IndexType説明
vimspyイベント関連のデータ
vimwork行数、ファイルサイズの差分データ

データの収集はデフォルトではもちろん無効で、:StartSpy, :StopSpyコマンドで開始/停止できます。
なお物好きな方は以下の設定で自動的に有効にできます。

let g:vim_spy_auto_start = 1

可視化

vim-spy によって事ある毎に Elasticsearch にデータはPOSTされるので、あとは Kibana 上で好きなように可視化するだけです。

ダッシュボードができたあとは Refresh Interval を短く設定しておくと、グラフが更新されていく様を見て楽しめると同時に、本来の作業への集中を欠くことができます。でも楽しい。

最後に

Docker で Elasticsearch を立ち上げてPOSTさせた限りでは vim-spy を有効にしていても、作業中に重さは特に感じませんでした。
ただ環境によっては重くなる可能性があるので、もし利用する際にはご注意ください。

もし Vim 上のこんなデータも可視化してみたら面白いんじゃないの?というのがありましたら、また無駄なことで楽しみたいので是非ご連絡ください。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>