This add-on is operated by Sentry
See what matters, solve quicker, and learn about your applications.
Sentry
Last updated September 14, 2023
Table of Contents
Sentry is a realtime event logging and aggregation platform. It specializes in monitoring errors and extracting all the information needed to do a proper post-mortem without any of the hassle of the standard user feedback loop.
Provisioning the add-on
Reference the Sentry Elements Page for a list of available plans and regions.
Start by adding the Sentry addon:
$ heroku addons:create sentry
Integrating with Ruby (or Rails 3.x)
If you’re only using Ruby, add the sentry-ruby
gem to your Gemfile:
gem 'sentry-ruby'
If you’re also using Rails, add both the sentry-ruby
and sentry-rails
gems to your Gemfile:
gem 'sentry-ruby'
gem 'sentry-rails'
In Rails we will automatically pick up unhandled exceptions and send them to Sentry. For other platforms you can wrap your code to manually log the exceptions:
begin
1 / 0
rescue ZeroDivisionError => exception
Sentry.capture_exception(exception)
end
If you’re not running with the “production” environment, you’ll need to manually specify that by calling out to Sentry:
Sentry.init do |config|
config.current_environment = 'production'
end
Integrating with Python (or Django)
Sentry configures the integration during library initialization.
import os
import sentry_sdk
sentry_sdk.init(os.environ['SENTRY_DSN'])
If you’re using Django, initialize it with the Django integration in your settings.py file:
import os
import sentry_sdk
from sentry_sdk.integrations.django import DjangoIntegration
sentry_sdk.init(
dsn=os.environ['SENTRY_DSN'],
integrations=[DjangoIntegration()]
)
In any platform, you can explicitly capture an error using the captureException method:
from sentry_sdk import capture_exception
try:
a_potentially_failing_function()
except Exception as e:
# Alternatively the argument can be omitted
capture_exception(e)
If you are just looking to generate a test exception, you can do that via the sentry_sdk CLI:
sentry_sdk test `heroku config:get SENTRY_DSN`
Viewing Sentry
Heroku provides an easy interface for logging into the Sentry web UI:
$ heroku addons:open sentry
Notifications
Sentry sends you notifications regarding workflow activities, release deploys, and quota usage, as well as weekly reports. For email notifications, add members to your Sentry organization in Organization Settings > Members.
Removing the add-on
Just as provisioning, this is done through the addons interface:
$ heroku addons:destroy sentry