Rack Middleware
Sentry's Ruby SDK allows users to report messages, exceptions, and tracing events.
The SDK supports Ruby 2.4+ and the most recent JRuby versions. It also integrates with popular frameworks and libraries via library-specific gems.
On this page, we get you up and running with Sentry's SDK.
Using a framework?
Check out the other SDKs we support in the left-hand dropdown.
Don't already have an account and Sentry project established? Head over to sentry.io, then return to this page.
If you prefer to follow video instructions, see How to Install the Sentry Ruby SDK in 60 Seconds.
Sentry captures data by using an SDK within your application’s runtime.
Add the sentry-ruby
gem to your Gemfile
:
Gemfile
gem "sentry-ruby"
Configuration should happen as early as possible in your application's lifecycle.
Add use Sentry::Rack::CaptureExceptions
to your config.ru
or other rackup file:
config.ru
require 'sentry-ruby'
Sentry.init do |config|
config.dsn = 'https://examplePublicKey@o0.ingest.sentry.io/0'
# enable performance monitoring
config.enable_tracing = true
# get breadcrumbs from logs
config.breadcrumbs_logger = [:sentry_logger, :http_logger]
end
use Sentry::Rack::CaptureExceptions
If you're not using Rackup to run your app, then Sentry initialization code must be placed before your code requires Sinatra:
app.rb
require 'sentry-ruby'
Sentry.init do |config|
config.dsn = 'https://examplePublicKey@o0.ingest.sentry.io/0'
# enable performance monitoring
config.enable_tracing = true
# get breadcrumbs from logs
config.breadcrumbs_logger = [:sentry_logger, :http_logger]
end
# in a non-rackup environment you must initialize the Sentry SDK before requiring sinatra
require 'sinatra'
use Sentry::Rack::CaptureExceptions
get "/" do
raise "foo"
end
This snippet includes an intentional error, so you can test that everything is working as soon as you set it up.
Sentry.capture_message("test message")
Learn more about manually capturing an error or message in our Usage documentation.
To view and resolve the recorded error, log into sentry.io and open your project. Clicking on the error's title will open a page where you can see detailed information and mark it as resolved.
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").