FireHydrant's Opsgenie integration enables various capabilities within the platform:

  • Automatically create FireHydrant incidents from Opsgenie alerts
  • Notify different channels based on incoming alert content
  • Page out to teams and services in Opsgenie from FireHydrant
  • Automatically pull in on-call responders from Opsgenie escalation policies to incident channels
  • Importing services from Opsgenie to FireHydrant's Service Catalog
  • ...and more!

Installation

Prerequisites

  • Ensure the Opsgenie account authorizing the integration has API access.

Connecting Opsgenie to FireHydrant

First, you need an Opsgenie API key.

  1. Go to the Opsgenie Integrations page Settings > Integrations and click Add integration.
  2. Search for and select API. Provide a name for this API integration and click Continue.
  3. On the API settings page click Edit. By default, all permissions will be selected, and you will want to ensure that "Allow Read Access", "Allow Create and Update Access" and "Allow Configuration Access" are selected.
Creating an API key in Opsgenie

Creating an API key in Opsgenie

  1. Copy the API Key that is generated for you and press Save. Review the "Incoming Rules" and press Turn on integration to finalize API set up.

Now, take that API key and connect Opsgenie to FireHydrant.

  1. Go to Settings > Integrations list and click on the Opsgenie integration.
  2. On the Opsgenie page, click Setup Opsgenie and enter the API key you copied.

Once finished, you should be back on the Opsgenie integration page and a webhook URL will be generated. Make a note of it for the next section.

Setup Outgoing Webhook

After configuring the connection, you will need to configure an outgoing webhook from Opsgenie so FireHydrant can correctly sync incident states.

Copy this webhook URL after connecting Opsgenie

Copy this webhook URL after connecting Opsgenie

  1. In the Opsgenie integration settings page on FireHydrant, copy the webhook address provided by FireHydrant.
  2. In the Opsgenie app, go to Settings > Integrations and click "+ Add Integration."
  3. Search for the Webhook integration and click on it.
  4. Check the Add alert description to payload and Add alert details to payload boxes on the configuration page. You may choose to edit what events you want to trigger an alert to FireHydrant by modifying the triggers, but we recommend leaving this as the default.
  5. Paste the copied webhook into the Webhook URL field and hit Save.
Default settings for Opsgenie outgoing webhook

Default settings for Opsgenie outgoing webhook

Now, you should be all set! You can create an incident or alert in Opsgenie to test this outgoing webhook. By default, an event should be registered under the "Alert Log" tab of the Opsgenie integration setting page on FireHydrant.

Example alert after configuring outgoing webhook

Example alert after configuring outgoing webhook

Opsgenie Alert Routing

Once your Opsgenie instance is configured, you can set up Alert Routes to take action on your alerts based on the data included in the alert. You can automatically open new incidents, send alerts to any Slack channel, log an alert in FireHydrant, or simply ignore it. To learn more about routing, see Alert Routing. Below you'll find the list of parameter mappings for Opsgenie.

Opsgenie Caveat and Noise

For Opsgenie, if you create an Incident in Opsgenie with Responders, you'll get multiple alerts: one "associated alert" that notifies nobody and another alert that pages Responders. This seems to have been a deliberate decision by the Atlassian team, but this can cause a lot of noise on FireHydrant.

We don't currently have a way we can tell apart between the two alerts, so if you are using FireHydrant Alert Routing in conjunction with Opsgenie, we recommend only creating Alerts and not Incidents on Opsgenie when possible to avoid duplicate notifications/actions on FireHydrant.

Parameter Mappings

Here is the table of routable parameters on FireHydrant and the corresponding key/value from the inbound Opsgenie webhook(s). The $ refers to the webhook body content as a JSON object.

An explanation of Opsgenie's Webhook content can be found in their docs here.

Parameter NameOpsgenie Webhook BodyNotes
Opsgenie: Action$.actionThe action taken that triggered this Webhook
Opsgenie: Impacted Services$.alert.details.impacted-servicesThe services marked impacted on the alert from Opsgenie side
Opsgenie: Created At$.alert.createdAtWhen the alert was created
Opsgenie: Description$.alert.descriptionDescription of the alert or incident
Opsgenie: Priority$.alert.priorityThe Opsgenie alert's priority
Opsgenie: Alert ID$.alert.alertIdID of the alert in Opsgenie
Opsgenie: Message$.alert.messageAlert message or the Incident Summary if it's an incident
Opsgenie: Web URL$.alert.links.webNot all alerts have this parameter. If this parameter doesn't exist, FireHydrant reconstructs the URL for you and makes it available via Liquid templating.

The following table shows our overall Alert Routing mapping object - these parameters are standard across all Alerting/Monitoring integrations.

Parameter NameOpsgenie Webhook BodyNotes
Alert Summary$.alert.messageThe same as Opsgenie: Message above
Alert Description$.alert.descriptionThe same as Opsgenie: Description above
Alert Priority$.alert.priorityThe same as Opsgenie: Priority above
Alert Status$.alert.actionThe same as Opsgenie: Action above
Alert Associated InfrastructureN/AThe associated Service/Functionality in FireHydrant. For us to detect this, you must have linked a Service or Functionality to a service in Opsgenie.

Next Steps

Now that you've configured the Opsgenie integration, you can take the following steps to get the full power of FireHydrant + Opsgenie: