Integrate with Airbrake
What does the integration offer?
Use Jira Service Management's Airbrake Integration to forward Airbrake incidents to Jira Service Management. Jira Service Management determines the right people to notify based on on-call schedules– notifies via email, text messages (SMS), phone calls, iOS & Android push notifications, and escalates alerts until the alert is acknowledged or closed.
How does the integration work?
When an error (incident) is captured in Airbrake, an alert is created in Jira Service Management.
Set up the integration
Airbrake is an API-based integration. Setting it up involves the following steps:
Add an Airbrake integration in Jira Service Management
Configure the integration in Airbrake
Add an Airbrake integration
The following capabilities are available in Jira Service Management Premium and Enterprise:
Bidirectional integrations
Outgoing integrations at the team level
Integrations at a site level through Settings (icon) > Products (under Jira settings) > Operations
To access Jira Service Management Premium features, you must subscribe to a Service Collection Premium or Enterprise plan.
Adding an integration from your team’s operations page makes your team the owner of the integration. This means Jira Service Management only assigns the alerts received through this integration to your team.
To add an Airbrake integration in Jira Service Management, complete the following steps:
Next to Operations in the sidebar, select More actions (), then General configuration.
Select Integrations and then Add integration.
Run a search and select “Airbrake”.
On the next screen, enter a name for the integration.
Optional: Select a team in Assignee team if you want a specific team to receive alerts from the integration.
Select Continue.
The integration is saved at this point.Expand the Steps to configure the integration section and copy the API URL.
You will use this URL while configuring the integration in Airbrake later.Select Turn on integration.
The rules you create for the integration will work only if you turn on the integration.
Configure the integration in Airbrake
To configure the integration of Airbrake with Jira Service Management, complete the following steps:
In Airbrake, go to Integrations from your project's page.
Select Webhook.
Paste the webhook URL copied previously into Webhook Url.
Select Save.
You can configure alert properties on the integration configuration page in Jira Service Management.
Sample webhook message from Airbrake
JSON
{
"error": {
"id": 37463546,
"error_message": "RuntimeError: You threw an exception for testing",
"error_class": "RuntimeError",
"file": "[PROJECT_ROOT]/app/controllers/pages_controller.rb",
"line_number": 35,
"project": {
"id": 1055,
"name": "AirbrakeProject"
},
"last_notice": {
"id": 4505303522,
"request_method": "metot",
"request_url": "http://airbrake.io:445/pages/exception_test",
"backtrace": [
"[PROJECT_ROOT]/app/controllers/pages_controller.rb:35:in `exception_tester'",
"[PROJECT_ROOT]/app/middleware/conditional_heroku_nav.rb:19:in `_call'",
"[PROJECT_ROOT]/app/middleware/conditional_heroku_nav.rb:11:in `call_without_newrelic'"
]
},
"environment": "production",
"first_occurred_at": "2012-02-23T22:03:03Z",
"last_occurred_at": "2012-03-21T08:37:15Z",
"times_occurred": 118
}
}
Jira Service Management parses the payload as follows:
{
"error_id": 37463546,
"error_message": "RuntimeError: You threw an exception for testing",
"file": "[PROJECT_ROOT]/app/controllers/pages_controller.rb",
"line_number": 35,
"project_id": 1055,
"project_name": "AirbrakeProject",
"environment": "production",
"first_occurred_at": "2012-02-23T22:03:03Z",
"last_occurred_at": "2012-03-21T08:37:15Z",
"times_occurred": 118,
"last_notice_request_method": "metot",
"last_notice_request_url": "http://airbrake.io:445/pages/exception_test",
"last_notice_backtrace": [
"[PROJECT_ROOT]/app/controllers/pages_controller.rb:35:in `exception_tester'",
"[PROJECT_ROOT]/app/middleware/conditional_heroku_nav.rb:19:in `_call'",
"[PROJECT_ROOT]/app/middleware/conditional_heroku_nav.rb:11:in `call_without_newrelic'"
]
}
Was this helpful?