個人開発の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すごい!
コメント