Deploy Tracking
Airbrake has the ability to track your deploys.
Whenever you deploy a project to a particular RAILS_ENV, Airbrake will record that fact, and mark all notices for that project in that environment as being resolved. Airbrake will unresolve errors that come back again. This ensures that you get notified if you have any exceptions that are still occurring after the deploy, and they will show up in the UI as if it was never resolved in the first place.
All existing notices for a project will be resolved in bulk using this feature.
Installation
Deploy tracking requires the latest airbrake notifier. Be sure you have the latest version installed from the github project. In addition, deploy tracking is only available for accounts on paid plans.
Usage
Once installed, your application will have a new rake task, which you call as...
To Mark all Errors as Resolved for the Production
Environment
rake airbrake:deploy TO=production
To Mark all Errors as Resolved for a Specified Rails Environment, use the following format:
rake airbrake:deploy RAILS_ENV=<rails environment>
TO=rails environment
For example:
Development
rake airbrake:deploy RAILS_ENV=**development**
TO=**development**
Staging
rake airbrake:deploy RAILS_ENV=staging TO=staging
But if you use capistrano, you should never have to run the rake
command for the Production environment by hand. The Airbrake
notifier also includes a capistrano recipe that runs after
deploy:cleanup which automatically triggers that rake
task.
You can see how many deploys you have for a project under the projects page, and you can view those individual deploys, plus all errors that happened while that deploy was active by drilling down further.

Deploy tracking also allows you to make use of GitHub integration
Usage - Engine Yard Cloud
To notify Airbrake of your deploys to EngineYard cloud, you can
use the following deploy/after_restart.rb script:
The above notification script is a modified version of a script included in the Engine Yard Cloud, New Relic and Airbrake deploy notifications article by Jose Fernandez.
Read more about the deploy/*.rb deploy hook scripts
on
Engine Yard's documentation site.
Manual Deploy Notifification
The rake airbrake:deploy task and Capistrano hooks
are intended for use in a Rails application. You can manually
trigger a deploy on the command line using the Airbrake API and
curl:
curl -d "api_key=API_KEY&deploy[rails_env]=ENVIRONMENT" http://airbrake.io/deploys
Where API_KEY is your project's API Key and ENVIRONMENT is the environment you're deploying to. There are some other settings that may be used along with the two above:
deploy[local_username]=USER # username of the person doing the deploy
deploy[scm_repository]=URL # URL of the repository, e.g. git://github.com/youraccount/project
deploy[scm_revision]=REVISION # Hash, number, tag, or other identifier showing what revision was deployed
Running that command will mark a deploy in Airbrake for the project specified.
Using Airbrake executable
You can also use the executable for deploy notifications:
$ airbrake deploy -k YOUR_API_KEY
For more information about the executable, please visit the Airbrake gem wiki pages.
Troubleshooting
If the notification of the deploy is not happening automatically when you do a capistrano deploy:
- Ensure that your plan supports deploys. Which plans support depoys?
- When Airbrake is installed as a gem, you need to add
require 'airbrake/capistrano'to yourdeploy.rb
Heroku DeployHooks
To implement Deploy Hooks on Heroku/Cedar stack, please use one of the following:
heroku addons:add deployhooks:http \
--url="http://airbrake.io/deploys.txt\
?deploy[rails_env]=production\
&api_key=AIRBRAKE_API_KEY\
&deploy[local_username]={{user}}\
&deploy[scm_revision]={{head_long}}\
&deploy[scm_repository]=GITHUB_URL" # e.g. git@github.com:username/repo.git
rake airbrake:heroku:add_deploy_notification
Be sure to provide the app name for the rake task if you have
multiple Heroku apps configured. You can send it by specifying
ENV["HEROKU_APP"].