読者です 読者をやめる 読者になる 読者になる

weblog of key_amb

主にIT関連の技術メモ

アラートをまとめるシステム "poloxy" の v0.2 をリリースしました

Ruby 監視ツール

前回の記事で紹介した poloxy をその後リリースして、本稿の執筆時点で v0.2.1 までバージョンが進みました。

"poloxy" とは

繰り返しになるので詳しい説明は割愛しますが、スライドや README に載せている図を再掲しておきます。

f:id:key_amb:20160503224310p:plain

こんな感じで、アラートをまとめて通知してくれるものです。
まとめられたアラートの内容は Web Dashboard で確認できます。

Motivation

サーバサイドアプリケーションの開発・運用従事者の方は何かやらかしてアラートを大量に飛ばした経験はあるでしょうか。

私は、あります^^;

アラートがたくさん届くと心臓に悪いですね。
たくさんアラートが発火したとしても、1通にまとまって届いてくれたら安心ですね。

…というわけで、それをやってくれるものを作ってみた、というものです。

4/28 の西日暮里.rb で、発表スライドの3ページ目に「1時間に1000件以上アラートを受信したことがある人」という質問を入れていました。
発表中に聞いてみたところ、若干名いらっしゃったので、多少はニーズがあるかなと思っています。

Current Status

できた:

  • Web Dashboard
  • HTTP API
  • Worker
  • 送信
  • まとめる
    • 単位時間(1分程度。configで変更可能)に受信したアラートの品目単位
    • 単位時間に受信したアラートのグループ単位
    • 単位時間に受信したアラートの宛先(と送信タイプ)単位

まだできてない:

  • SMTP 受信/中継
  • アラートのスヌーズ ... 単位時間じゃなくて一定時間アラートを飛ばさなくする
  • 古いデータのパージ機能

その他スライド発表時点から変更した点:

  • Redis キューを使わなくして、DB に統合しました

ドキュメントは今のところ README にざっと書いています。
config や curl のサンプルも載せているので、一応お試しいただけるかな、と思います。

Milestone

上の「まだできてない」に挙げていることは v1.0 リリースまでにはやろうと思っていることです。

趣味でやっていることもあり、いついつまでというのは特に決めてませんが。

試してみて「困った」など、何かフィードバックがありましたら、GitHub 等でお知らせ頂ければ幸いです。

(余談) Another Approach 〜 Fluentd との相似について

受信はさておき、送信は今後種類が増えるかもしれないので、Pluggable にしておいた方がよさそうです。
一応、それを見越して動的に各送信タイプの class をロードするようにしています。
そんなことを考えていたら、ふと「あれ、送信と受信があってなんだか Fluentd っぽい」と思った瞬間がありました。

ひょっとしたら、Daioikachan *1みたいに Fluentd の仕組みに乗っかった方が筋がよかっただろうか、とちょっと悩んでいたりします。

Fluentd の既存のプラグインでも、ログを間引いたり*2、suppression を入れたりできるもの*3はあるようなので、そっちのアプローチもアリだったかもしれません。

とはいえ、"poloxy" には Dashboard や DB が付いていたり、アラートのグルーピングなど独自な概念もあるので、Fluentd プラグイン化はやりすぎですかね。。