- Railsプロジェクトでエラーの管理をするとき、SentryかRollbarを使うことが多いはず(以下エラー管理システムと呼ぶ)
- エラー管理システムには、システムでの想定外の挙動を通知させたい
- 「システムでの想定外の挙動」を分けるとおおきく次の2つ
- いわゆるバグ
- 想定外の振る舞いをしている可能性があるもの
- 後者は例えば「
ActiveRecord::RecordNotFound
例外で404ページを表示している箇所で、これ自体は想定内の挙動なのだけどサービス内に該当ページに遷移するリンクがあったときに気付けるように一応エラー管理システムに通知する」というもの*1 - 後者の通知が多くて、対処が必要な前者が埋もれがちになる、という問題をよく見かける
- 後者はエラー管理システムとは別で管理したい
- ログとして情報をためておいて、時々参照したい
- 単なるログだと流れてしまって見ない
- 頻度やその時の状況、スタックトレースなどもほしい
- あれ?でもこれってエラー管理システムの要件では?
- ログとして情報をためておいて、時々参照したい
- なんかうまく管理する方法ないですかね…?
追記
@masa_iwasakiさんにアドバイスもらったので追記
Sentryのログレベルを指定して重要でないものは level: :info にしてSentry側で通知するSlackチャンネルを分ける、というのはやったことあります。
— masa寿司 (@masa_iwasaki) October 30, 2019
*1:例が良くないかもしれないけど、御社のエラー管理システムのを眺めると「バグじゃないんだけど登録されているエラー」がたくさん見つかるはず