mcpField
S
sentry-ruby-setup

sentry-ruby-setup

github.com/getsentry开发25104 次安装35 周前更新
代码仓库

关于 sentry-ruby-setup

sentry-ruby-setup 是面向 Ruby 项目的 Sentry 安装与配置技能,适用于需要错误监控、日志或追踪的开发者。内容涵盖常规 Ruby 和 Rails 集成,并提供配置验证与故障排查指引。

主要功能

  1. 01安装 sentry-ruby
  2. 02配置 Sentry 初始化
  3. 03集成 Rails 及后台任务组件
  4. 04设置日志面包屑、追踪与性能分析
  5. 05验证事件采集并排查问题

适用场景

  1. 01为 Ruby 应用添加错误监控
  2. 02在 Rails 项目中配置 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 应用中 "add Sentry to Ruby" 或 "install Sentry"
  • 用户希望在 Ruby 中进行错误监控、日志记录或追踪
  • 用户提到 "sentry-ruby" gem 或 Ruby on Rails

重要: 下面的配置选项和代码示例仅供参考。实施前请务必对照 docs.sentry.io 进行核实,因为 API 和默认值可能已发生变化。

要求

  • 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 专用 Gem
# 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将日志发送到 Sentryfalse
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-rails gem 而不是 sentry-ruby

评论

支持 Markdown