mcpField
S
sentry-ruby-setup

sentry-ruby-setup

github.com/getsentry開発25104 回インストール35 週間前に更新
リポジトリ

sentry-ruby-setup について

sentry-ruby-setupは、エラー監視、ログ、トレースを必要とする開発者向けに、RubyプロジェクトへSentryを導入するスキルです。一般的なRubyとRailsの設定に加え、動作確認や問題の切り分けも扱います。

主な機能

  1. 01sentry-rubyの導入
  2. 02Sentryの初期化設定
  3. 03Railsとバックグラウンドジョブの連携
  4. 04ログのパンくず、トレース、プロファイリング設定
  5. 05イベント送信の確認と問題解決

活用シーン

  1. 01Rubyアプリにエラー監視を追加
  2. 02RailsプロジェクトでSentryを設定
  3. 03リクエストのトレースやプロファイリングを有効化
  4. 04エラーやトレースが届かない原因を調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/getsentry/sentry-agent-skills --skill sentry-ruby-setup

インストール後、Claude Code で/sentry-ruby-setupを入力して読み込まれたか確認します。

詳細

Sentry Ruby のセットアップ

Ruby プロジェクトに Sentry をインストールして設定します。

このスキルを使用するタイミング

  • Ruby アプリに「Sentry を追加する」または「Sentry をインストールする」とユーザーが依頼した場合
  • Ruby でエラー監視、ログ記録、トレースを行いたい場合
  • sentry-ruby gem または Ruby on Rails について言及した場合

重要: 以下の設定オプションとコードサンプルは例です。API やデフォルト値が変更されている可能性があるため、実装する前に必ず docs.sentry.io で確認してください。

要件

  • Ruby 2.4 以降、または最近の JRuby バージョン

インストール

Gemfile に追加します。

gem "sentry-ruby"

# For profiling, add ONE of:
gem "stackprof"  # SDK 5.9.0+ — works on all Ruby versions
# gem "vernier"  # SDK 5.21.0+ — requires Ruby 3.2.1+, better for multi-threaded servers
                 # Also requires: config.profiler_class = Sentry::Vernier::Profiler

次に、以下を実行します。

bundle install

設定

できるだけ早い段階で初期化します。

require "sentry-ruby"

Sentry.init do |config|
  config.dsn = "YOUR_SENTRY_DSN"
  config.send_default_pii = true
  
  # Breadcrumbs from logs
  config.breadcrumbs_logger = [:sentry_logger, :http_logger]
  
  # Tracing
  config.traces_sample_rate = 1.0
  
  # Profiling (requires stackprof or vernier gem)
  config.profiles_sample_rate = 1.0
  # config.profiler_class = Sentry::Vernier::Profiler  # Uncomment if using vernier
  
  # Logs
  config.enable_logs = true
end

Rails との統合

Rails の場合は、config/initializers/sentry.rb に追加します。

Sentry.init do |config|
  config.dsn = ENV["SENTRY_DSN"]
  config.send_default_pii = true
  config.breadcrumbs_logger = [:active_support_logger, :http_logger]
  config.traces_sample_rate = 1.0
  config.profiles_sample_rate = 1.0
  config.enable_logs = true
end
Rails 固有の Gems
# Gemfile
gem "sentry-ruby"
gem "sentry-rails"  # Rails integration
gem "sentry-sidekiq"  # If using Sidekiq
gem "sentry-delayed_job"  # If using Delayed Job
gem "sentry-resque"  # If using Resque

設定オプション

オプション説明デフォルト
dsnSentry DSNnil(SDK はこれがない場合、何もしません)
send_default_piiユーザーデータを含めるfalse
traces_sample_rateトレースするトランザクションの割合nil(トレースは無効)
profiles_sample_rateプロファイルを取得するトレースの割合nil(プロファイリングは無効)
enable_logsログを Sentry に送信するfalse
environment環境名"development"(SENTRY_CURRENT_ENV、SENTRY_ENVIRONMENT、RAILS_ENV、RACK_ENV の順に確認します)
releaseリリースバージョン自動検出

パンくずログのロガー

ロガー説明
:sentry_loggerSentry 独自のロガー
:http_loggerHTTP リクエストのパンくず
:redis_loggerRedis コマンドのパンくず
:active_support_loggerRails ActiveSupport(Rails のみ)

環境変数

SENTRY_DSN=https://[email protected]/456
SENTRY_AUTH_TOKEN=sntrys_xxx
SENTRY_ORG=my-org
SENTRY_PROJECT=my-project

検証

# Capture test message
Sentry.capture_message("Test message from Ruby")

# Or trigger intentional error
1 / 0

トラブルシューティング

問題解決策
エラーが表示されないSentry.init が早い段階で呼び出されていることを確認し、DSN を確認します
トレースがないtraces_sample_rate を 0 より大きく設定します
プロファイルがないstackprof gem を追加し、profiles_sample_rate を設定します
Rails のエラーがないsentry-ruby ではなく sentry-rails gem を使用します

コメント