sentry-ruby-setup

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Sentry Ruby Setup

Sentry Ruby 配置

Install and configure Sentry in Ruby projects.
在Ruby项目中安装并配置Sentry。

Invoke This Skill When

何时调用此技能

  • User asks to "add Sentry to Ruby" or "install Sentry" in a Ruby app
  • User wants error monitoring, logging, or tracing in Ruby
  • User mentions "sentry-ruby" gem or Ruby on Rails
  • 用户要求在Ruby应用中「添加Sentry」或「安装Sentry」
  • 用户需要在Ruby中实现错误监控、日志记录或追踪功能
  • 用户提及「sentry-ruby」gem或Ruby on Rails

Requirements

要求

  • Ruby 2.4+ or recent JRuby versions
  • Ruby 2.4+ 或最新版JRuby

Install

安装

Add to
Gemfile
:
ruby
gem "sentry-ruby"
Gemfile
中添加:
ruby
gem "sentry-ruby"

For profiling, also add:

如需性能分析,还需添加:

gem "stackprof"

Then run:

```bash
bundle install
gem "stackprof"

然后运行:

```bash
bundle install

Configure

配置

Initialize as early as possible:
ruby
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 gem)
  config.profiles_sample_rate = 1.0
  
  # Logs
  config.enable_logs = true
end
尽早初始化Sentry:
ruby
require "sentry-ruby"

Sentry.init do |config|
  config.dsn = "YOUR_SENTRY_DSN"
  config.send_default_pii = true
  
  # 从日志生成面包屑
  config.breadcrumbs_logger = [:sentry_logger, :http_logger]
  
  # 追踪配置
  config.traces_sample_rate = 1.0
  
  # 性能分析(需要stackprof gem)
  config.profiles_sample_rate = 1.0
  
  # 日志配置
  config.enable_logs = true
end

Rails Integration

Rails集成

For Rails, add to
config/initializers/sentry.rb
:
ruby
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项目,在
config/initializers/sentry.rb
中添加:
ruby
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-specific Gems

Rails专属Gem

ruby
undefined
ruby
undefined

Gemfile

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
undefined
gem "sentry-ruby" gem "sentry-rails" # Rails集成插件 gem "sentry-sidekiq" # 若使用Sidekiq gem "sentry-delayed_job" # 若使用Delayed Job gem "sentry-resque" # 若使用Resque
undefined

Configuration Options

配置选项

OptionDescriptionDefault
dsn
Sentry DSNRequired
send_default_pii
Include user data
false
traces_sample_rate
% of transactions traced
0
profiles_sample_rate
% of traces profiled
0
enable_logs
Send logs to Sentry
false
environment
Environment nameAuto-detected
release
Release versionAuto-detected
选项说明默认值
dsn
Sentry DSN地址必填
send_default_pii
是否包含用户隐私数据
false
traces_sample_rate
事务追踪采样率
0
profiles_sample_rate
性能分析采样率
0
enable_logs
是否将日志发送至Sentry
false
environment
环境名称自动检测
release
版本号自动检测

Breadcrumb Loggers

面包屑日志器

LoggerDescription
:sentry_logger
Sentry's own logger
:http_logger
HTTP request breadcrumbs
:active_support_logger
Rails ActiveSupport (Rails only)
日志器说明
:sentry_logger
Sentry内置日志器
:http_logger
HTTP请求面包屑
:active_support_logger
Rails ActiveSupport日志器(仅Rails可用)

Environment Variables

环境变量

bash
SENTRY_DSN=https://xxx@o123.ingest.sentry.io/456
SENTRY_AUTH_TOKEN=sntrys_xxx
SENTRY_ORG=my-org
SENTRY_PROJECT=my-project
bash
SENTRY_DSN=https://xxx@o123.ingest.sentry.io/456
SENTRY_AUTH_TOKEN=sntrys_xxx
SENTRY_ORG=my-org
SENTRY_PROJECT=my-project

Verification

验证

ruby
undefined
ruby
undefined

Capture test message

捕获测试消息

Sentry.capture_message("Test message from Ruby")
Sentry.capture_message("Test message from Ruby")

Or trigger intentional error

或触发故意错误

1 / 0
undefined
1 / 0
undefined

Troubleshooting

问题排查

IssueSolution
Errors not appearingEnsure
Sentry.init
called early, check DSN
No tracesSet
traces_sample_rate
> 0
No profilesAdd
stackprof
gem, set
profiles_sample_rate
Rails errors missingUse
sentry-rails
gem instead of
sentry-ruby
问题解决方案
错误未显示确保
Sentry.init
尽早调用,检查DSN地址
无追踪数据设置
traces_sample_rate
> 0
无性能分析数据添加
stackprof
gem,设置
profiles_sample_rate
> 0
Rails错误未捕获使用
sentry-rails
gem替代
sentry-ruby