Reluminでslowlog見れるようにした

やったこと

ReluminっていうRedis Cluster Admin Toolでslowlog見れるようにしてくれい!という依頼があったので、実装してみた。
こんな感じになります。

f:id:hsbrysk:20160624010805p:plain

GitHub - be-hase/relumin: Redis cluster admin tool

横軸に時間とって、縦軸にslowlogの実行時間(micro seconds)をノードごとに色分けしてscatter plotしていっている。
hoverするとツールチップでslowlogのコマンドとかも見れる感じ。

graphの下には、tableで羅列している。

Redisみたいにシングルスレッドでイベントループしてるやつで長い実行時間のcommandあると危険なので、
頻発するようだったら対処してあげてみてください。

今後

時間と気合があったらやることリスト

  • INFOコマンドで取得したmetricsに対してはalertできる機能あるので、slowlogもalertしてあげても良いかもしれない。
  • Redis3.0.6くらいから付属しているredis-trib.rbには良い感じに均等にリバランシングする機能がついたので、Relumin上でも実装してワンクリックでリバランシングできるようにしても良いかもしれない。
    • 今だとRelumin上でノードごとに複数回リシャードしないといけないので、少し面倒くさい。
  • Jedis2.9からclusterでもpassword設定できるようになるので、その対応しておこうかな。
    • でも他の言語のclientはまだpasswordのサポートしてなさそうだからあとでいいかな。
  • React(SPA)で書いてるフロント部分、Typescriptで書きなおそうかな。
  • metricsとかメタデータ保存しているstorage, RDBで実装するの面倒だったのでRedis使ってるんだけど明らかにお金もったいないのでRDBも使用できるようにしようかな。
    • チーム内でこじんまりと使うぶんにはよかったけど...