SentryでRailsのエラーをモニタリングする

個人開発のRailsのプロジェクトが増えてエラーに気付けないことがありそうなのでSenrtyを使ってみる。今回は無料で使える範囲で使用する。

Sentryに登録

まずはSentryにアクセスしてアカウントの登録を行う。

プロジェクトの作成

Railsを選択する。

Railsの設定

公式ページのConfigure Rails SDKを参考に必要なGemを入れる。Gemfileに以下を追加してbundle install.

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

config/initializers/sentry.rbファイルを作成する。dsnはcredentialに書いた。コードをオープンにしたり他の人が見る場合はdsnを直に書くのは微妙かもしれない。

Sentry.init do |config|
  config.dsn = Rails.application.credentials.sentry_dsn
  config.breadcrumbs_logger = [:active_support_logger, :http_logger]

  # Set traces_sample_rate to 1.0 to capture 100%
  # of transactions for performance monitoring.
  # We recommend adjusting this value in production.
  config.traces_sample_rate = 1.0
  # or
  config.traces_sampler = lambda do |context|
    true
  end
  # Set profiles_sample_rate to profile 100%
  # of sampled transactions.
  # We recommend adjusting this value in production.
  config.profiles_sample_rate = 1.0
end

heathページを作成

意図的にエラーが発生するページを作成する。

raise StandardError.new('test error')

エラーを発生させるとSentryにエラーが送られ、メールが届く。

Javascriptのエラー検知

RailsのエラーができたのでJavascriptのエラーも検知する。フロントの開発が多いとjsが原因で動かないが開発者は気づかないみたいなことが発生するのでjsのエラー検知もかなり大事。

Sentryでプロジェクトを作成する

左のメニューからProjects->Create Projectを選択する。

BROWSER JAVASCRIPTを選択してプロジェクトを作成する。

frameworkを使うか選択できるが、今回は選択しない。VueやReactを使っていたら選択した方が良い(と思う)。

Railsのjavascriptの設定

healthページを作成し、ボタンを押したらJSのエラーを発生させる。

erbファイルにscriptタグを追加。idはユーザーにバレるけど気にしなくて良いか…

<script
  src="https://js.sentry-cdn.com/649179e.min.js"
  crossorigin="anonymous"
></script>

ページにアクセスするとSentryにイベントが送られ、エラーが発生するとメールが来る。

終わりに

とても簡単に設定できた。Sentryすごい!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA