被 ActionController::InvalidAuthenticityToken 灌爆的 rollbar
rollbar 是一套線上 BUG 回報平台,能夠主動把運行中發生 exception 當下的相關資訊,例如 IP、query params、request path 等,當然也包含了 exception class ,然後一併回報到平台上,配合 Slack 或 telegram 等訊息系統,工程師幾乎可在第一時間掌握 BUG 並即時處理。
對於剛接觸專案的工程師來說,指派去處理 rollbar 上的 BUG 會是相對門檻較低的起手式,在系統 BUG 逐漸減少的過程中,有一些 exception 對我們來說反而是不需要特別記錄到 rollbar 上的,例如 ActionController::InvalidAuthenticityToken 或 ActionController::RoutingError ,以下便是教大家如何在 rollbar 的設定上忽略掉某些特定的 exception class。
# config/initializer/rollbar.rb config.use_exception_level_filters_default = true config.exception_level_filters.merge!( 'ActionController::InvalidAuthenticityToken' => 'ignore', 'ActionController::RoutingError' => 'ignore' )
rollbar 有提供 configuration 的官方文件: https://github.com/rollbar/rollbar-gem/blob/master/docs/configuration.md
而 rails g rollbar 產生出來的 rollbar.rb 內也有 #exception_level_filters 的用法。
此外,ignore 是 rollbar 所定義的 exception level 其中之一的數值,另外還有 error, debug 等其他數值可用,相關請參考官方文件。
我的建議是僅需 ignore ActionController::InvalidAuthenticityToken ,而 ActionController::RoutingError 可以在 config/routes.rb 裡解決,ignore 太多 exception class 不見得是好事。