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...

rake airbrake:deploy TO=production

But if you use capistrano, you should never have to run that command 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

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.

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 your deploy.rb