Rails + Heroku + Sentry

概要

ポートフォリオの作成にあたり、Sentryを導入したかったのでそのまとめです。

Sentryとは

エラー監視用のツールみたいです。調べた所、同様のツールが存在しますが比較するだけの知識は無いので選定理由などはありません。

導入手順

HerokuのaddonsからSentryを追加する。

プランはFreeに設定しました。

Image from Gyazo

追加すると、 HerokuがSentryに自動でプロジェクトを作成してくれます。 こんな感じ...

Image from Gyazo

Railsのプロジェクトに導入する

導入方法はこちらを参考にします。

まずはGemfileに下記のgemを追加します。

gem "sentry-ruby"
gem "sentry-rails"

次にconfig/initializers/sentry.rbを作成し、下記の内容を追加します。

Sentry.init do |config|
  config.dsn = <あなたのdsnを記述>
  config.breadcrumbs_logger = [:active_support_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

sentryのdsnはHerokuだとSettingsConfig Varsから確認できます。 Key名がSENTRY_DSNの値です。

Image from Gyazo

設定がコンソールから下記のコードを実行してみます。

Sentry.capture_message("test message")

実行後、 Sentryに下記のように表示されていたら最低限の設定は完了です。

Image from Gyazo

その他

Slackへの通知を設定する

Sentryにerror通知が送られた際に、Slackにも通知が行くようにします。 サイドメニューからsettings => integrationsに入ります。 下記のようにSlackがあるので連携します。

Image from Gyazo

連携後、サイドメニューのAlertsを選択後、「Create Alert Rule」を選択します。

perform these actionsSend a slack notificationを選択します。 Image from Gyazo

後はSlack名を選択し、通知を送るチャンネル名を入力するだけです。 Image from Gyazo

configについて

こちらに書いてあります。