Puma
On this page, we get you up and running with Sentry's SDK, so that it will automatically report errors and exceptions in your application.
If you don't already have an account and Sentry project established, head over to sentry.io, then return to this page.
Install
Sentry captures data by using an SDK within your application’s runtime:
Add the sentry-ruby gem to your Gemfile:
Gemfilegem "sentry-raven"Configure
Configure Sentry as early as possible in your app. Once this is done, the Sentry SDK captures all unhandled exceptions.
Puma provides a config option for handling low level errors.
puma.rblowlevel_error_handler do |ex, env|
Raven.capture_exception(
ex,
:message => ex.message,
:extra => { :puma => env },
:transaction => "Puma"
)
# note the below is just a Rack response
[500, {}, ["An error has occurred, and engineers have been informed. Please reload the page. If you continue to have problems, contact support@example.com\n"]]
endWe'll automatically assign you a Data Source Name (DSN), which looks like a standard URL. It's required by Sentry and configures the protocol, public key, server address, and project identifier. If you forget it, view Settings -> Projects -> Client Keys (DSN) in sentry.io.
Verify
This snippet includes an intentional error, so you can test that everything is working as soon as you set it up:
The simplest way to verify your setup is to create an exception:
begin
1 / 0
rescue ZeroDivisionError => exception
Raven.capture_exception(exception)
endTo 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.