Sentry에서 Rails 앱 오류 추적

계약



아래에서 계약
htps : // 센트리. 이오/시그누 p/

계약시에 프로젝트를 작성하게 되어, 프로젝트 작성 후의 화면에 셋업 방법이 쓰여져 있으므로, 순서대로 진행해 나가면 문제 없을 것. 다만 마음을 위해 자신처럼 정리합니다.

기본 사용법



Gemfile
gem "sentry-raven"
$ bundle install

config/application.rb
module AppName
  class Application < Rails::Application
    # 省略
    Raven.configure do |config|
      config.dsn = "https://#{ENV['SENTRY_KEY']}@#{ENV['SENTRY_SECRET']}.sentry.io/#{ENV['SENTRY_ID']}"
    end
  end
end

Sentry의 사이트에서 표시되는 설정 방법에는 ID 등이 모두 직접 작성되어 있으므로 환경 변수로 버렸습니다.

매개변수 및 세션 정보를 데리러



app/controllers/application.rb
class ApplicationController < ActionController::Base
  before_action :set_raven_context

  private

  def set_raven_context
    Raven.user_context(id: session[:current_user_id]) # or anything else in session
    Raven.extra_context(params: params.to_unsafe_h, url: request.url)
  end
end

비밀번호를 일반 텍스트로 기록하지 않음


$ touch config/initializers/sentry.rb

config/initializers/sentry.rb
Raven.configure do |config|
  config.sanitize_fields = Rails.application.config.filter_parameters.map(&:to_s)
end

프로덕션 환경의 오류만 참조



디폴트라면 개발 환경의 에러도 모두 일람으로 표시되어 버리므로 설정을 수정합니다.

Settings > Projects > 프로젝트 이름 > Environments > production 이외의 환경을 hide

(2020/10/07 추가)
상기의 방법이라고 개발 환경의 에러도 메일등으로 통지되어 버립니다.
단순히 개발 환경의 SENTRY용 API 키를 삭제하면 개발 환경의 오류가 캡처되지 않습니다.

참고


  • Rails 애플리케이션에 Sentry 도입 - Qiita
  • 환경 | 센트리 문서

  • 기타



    UI가 굉장히 Slack 웃음

    좋은 웹페이지 즐겨찾기