mackerel-agentでChromeのタブが吹き飛ぶ悲劇を防ごう

この記事は、Mackerel Advent Calendar 2017の6日目の記事です。昨日はid:myfinderさんによるMackerel思い出話でした。今日は小ネタです!!!

ブラウザのタブを閉じない人間の習慣

全国のブラウザのタブを閉じない皆さん、こんにちは。私もブラウザ(Chrome)のタブを閉じれない人間です。以下のようにコンテキスト毎にウィンドウを新しく作って調べものをするので、タブの数も軽く50個を越えることがよくあります。

  • コードを書くための調べものウィンドウAでタブを開きまくる
  • 調査タスクを頼まれたので、ウィンドウBでタブを開きまくる
  • 少し休憩ではてブを見るために(??)ウィンドウCでタブを開きまくる

悲劇は突然やってきます。Chromeの調子悪いなと思ったら固まり強制終了、フォームに長い文章などを書いていた日にはもう今日の営業は終了してビールでも飲みたい気分になります。お疲れ様でした。

mackerel-agentで悲劇を防ごう

悲劇を防ぐには今いくつタブを開いているか数えればよいですが、こういうことは裏側で勝手にやっておいて欲しいものです。そんなことをお手軽にやってくれるプラグインがmackerelにはあります。

起動しているプロセスの数が閾値を上回ったら通知を飛ばすことができます。補足しておくと、通常の用途としてはデーモンのようなプロセスが起動しているかを監視したい場合によく使われます。以下の設定の例では、開いているタブが50個を上回ったらwarning、70個を上回ったらcriticalのアラートが飛びます(slack等への通知は別途行ないましょう)。

[plugin.checks.chrome]
command = "/path/to/check-procs -p Chrome -w 50 -c 70"

余談ですが、Chromeはタブ毎にプロセスになっているので、check-procsでの監視が可能です。他のブラウザでもいい感じにできる方法があったら教えてください。

以下は「タブを開きすぎだぞ」という通知がslackにきたので、しぶしぶタブを閉じていく様子です。

f:id:syou6162:20171127194140p:plain

mackerel-agentのactionオプションを使うと、一定個数以上タブを開いていたら強制的にChromeのプロセスを殺すといったこともできますが、それはそれで悲劇が起きそうなので今回はやめておきます。

明日のアドベントカレンダーはid:astjさんです!