Redmine Airbrake Plugin

Capture Your Application’s Exceptions With Redmine.

Github ZIP Archive

Airbrake is a bug or exception tracking platform. There are client libraries for a lot of platforms, and using this plugin you can use the same client libraries to collect exception data as Redmine issues (no Airbrake account necessary).

Installation

Generic Redmine plugin installation instructions apply.

Then, go to Administration -> Settings -> Incoming emails in your Redmine and generate an API key. You will need that when configuring your client.

Configuration

In order to work properly, the plugin needs some data supplied by the client. Since the Airbrake clients are not designed to handle arbitrary parameters, we trick them by setting the API-Key value to a JSON-encoded hash holding our configuration. This hash may have the following keys:

project
Redmine project identifier where issues should be created
tracker
Name of the Redmine tracker to use for new issues
api_key
Redmine API key as created above
category
Issue category (optional)
assigned_to
Redmine login of a user the tickets should get assigned to by default (optional)
author
Redmine login of the user to serve as issue creator
priority
Id of a Redmine issue priority (optional)
environment
A string which gets prepended to the issue’s subject and is stored as a custom issue field. This is useful to distinguish errors on a test system from those on the production system (optional)
repository_root
This optional argument overrides the project wide repository root setting (see below).

Set up the Airbrake client for your platform according to the docs. When it comes to configuring it, deviate from the instructions and supply the necessary configuration hash. The following examples are for Airbrake’s Ruby client library:

airbrake Gem version < 5.0 (v2/XML API)

Airbrake.configure do |config|
  config.api_key = {
    :project => 'project_identifier',
    :tracker => 'Bug',
    :api_key => 'my_redmine_api_key',
    :category => 'Development',
    :assigned_to => 'admin',
    :priority => 5,
    :environment => 'staging',
    :repository_root => '/some/path'
  }.to_json
  config.host = 'my_redmine_host.com' # the hostname your Redmine runs at
  config.port = 443                   # the port your Redmine runs at
  config.secure = true                # sends data to your server via SSL
end

airbrake-ruby gem / airbrake gem >= 5.0 (v3/JSON API)

Airbrake.configure do |config|
  config.project_id = 1234
  config.project_key = {
    tracker: 'Bug',
    api_key: 'my_redmine_api_key',
    project: 'project_identifier',
    # ... other redmine_airbrake configuration options as above
  }.to_json
  config.host = 'https://my_redmine_host.com/'
  config.root_directory = Rails.root.to_s
end

As you can see the major difference is that there is now a project_id and projec_key where we just had an api_key before. Set the project_id to any number, it is ignored by this plugin but validated by the Airbrake client.

Setting the target host (that’s your Redmine instance running this plugin) has become much simpler - just put a complete URL into the host field and you’re done. The root_directory Airbrake option shortens backtrace lines by replacing your projects installation directory with [PROJECT_ROOT]

Push Notifications

Using the Pushover Plugin you can receive push notifications on any mobile device whenever an application error occurs.