LoginSignup
1
0

More than 1 year has passed since last update.

Railsプロジェクトに監視ツールSentryを導入する

Posted at

Railsの監視ツールであるSentryを導入した際に、まとまっていて欲しかった情報をまとめました。

環境


$ ruby -v
ruby 2.6.6p146 (2020-03-31 revision 67876) [x86_64-linux]

$ rails -v
Rails 5.2.5

事前準備

  • sentryの公式ページからアカウントを発行しておくこと

公式:
https://sentry.io/auth/login/o/

インストール

  • 旧式でRavenという名前になっているが、今はSentryに統一されている
  • Sentryの公式ドキュメントを参照するとよい
  • 以下はマニュアル通り

まずはライブラリをインストール

Gemfile.rb
gem "sentry-ruby"
gem "sentry-rails"
$ bundle install

設定ファイルに、Sentry公式で取得したdnsファイルを指定する。
下は公式ドキュメントをコピペしてとってきたものなので、各自Sentryの公式から取ってきてください。

config/initializers/sentry.rb

Sentry.init do |config|
  config.dsn = 'https://ae057caa888143fd8aaca98d4be139d7@o1185973.ingest.sentry.io/6305953' #ここは環境変数なりに入れる
  config.breadcrumbs_logger = [:active_support_logger, :http_logger]

  # To activate performance monitoring, set one of these options.
  # We recommend adjusting the value in production:
  config.traces_sample_rate = 0.5
  # or
  config.traces_sampler = lambda do |context|
    true
  end
end

これでとりあえず500エラーなどを起こすと、Sentry側で通知されるようになります。

Sentry.capture_message("test message") 

例外が発生した箇所に入れてあげると、Sentry側で捕捉します。


def import 
   ... 
   ...
   #何かしら失敗する処理
rescue StandardError => e 
   Sentry.capture_message(e)
end 

環境ごとのエラーの出しわけ

  • productionやstaging環境などで、エラーを出し分けたい場合、sentryがよしなにSENTRY_ENVIRONMENTという環境変数で切り分けてくれます。
  • 弊社ではHeroku上にステージング環境と本番環境が存在するので、それぞれstaging, productionを環境変数に入れています。
.env

SENTRY_ENVIRONMENT = production
SENTRY_ENVIRONMENT = staging

  • このように環境変数を指定すると、Environmentごとにどこでエラーが発生したのかがわかるようになります。

image.png

Slack連携

  • Alertという機能を使うと、Slackと連携してエラーを送ることができます。
  • 上記で作成したEnvironmentごとにエラー通知先を切り分けることができるので、ステージングで起こったエラーと本番で起こったエラーなどが簡単に通知先分けられるのがよいです。
  • ただしSlack連携は有料化しないとできないため注意が必要です。

SentryでSlackにエラーを送るAlertの設定方法
https://zenn.dev/a_ichi1/articles/0ffcadd00de3e5

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0