• Products
  • Get started
  • Documentation
  • Resources

Integrate Opsgenie with Datadog

Datadog logo

What does Opsgenie offer Datadog users?

Opsgenie has a native, powerful bidirectional integration with Datadog. Use the integration to automatically sync your Datadog alerts with Opsgenie alerts, and benefit from Opsgenie’s rich alert notification system, escalations, and on-call rotations.

Functionality of the integration

  • Datadog triggers an alert when a defined condition is matched. When an alert is created in Datadog, an alert is also created in Opsgenie automatically through the integration.

Datadog diagram
  • Create alerts in Opsgenie from Datadog UI by @mentioning Opsgenie service in the text.

Datadog alert
  • When the alert is acknowledged in Opsgenie, alert is acknowledged automatically in Datadog as well.

  • When the alert is closed in Opsgenie, alert is closed automatically in Datadog as well.

  • When an alert is created in Opsgenie from any source (other than Datadog), Opsgenie is able to post the alert to Datadog (optional).

Datadog callback diagram
  • Acknowledge (or close) the alerts from Datadog using Datadog's @opsgenie-acknowledge and @opsgenie-close commands in a comment.

Datadog commands

Add Datadog Integration to Opsgenie

If you're using Opsgenie's Free or Essentials plan or if you’re using Opsgenie with Jira Service Management's Standard plan, you can add this integration from your team dashboard only. The Integrations page under Settings is not available in your plan.

  1. Go to Teams and select your team.

  2. Select Integrations on the left navigation and then select Add integration.

Adding the integration from your team dashboard will make your team the owner of the integration. This means Opsgenie will assign the alerts received through this integration to your team only. Follow the rest of the steps in this section to set up the integration.

  1. Go to Settings > Integrations. Search for Datadog and select Add

  2. Specify who is notified for Datadog alerts using the Responders field. Auto-complete suggestions are provided as you type.

  3. Paste the Datadog API key obtained while configuring Datadog.

  4. If you are a Datadog EU customer, enable Send to Datadog EU box.

  5. Select Save Integration.

Datadog configuration

Configuration in Datadog

  1. In Datadog, select Integrations -> Integrations from the left pane.

  2. Choose Opsgenie from the Available list.

  3. Select Configurations tab.

  4. Enter the name of the integration and paste the API key that you copied from Opsgenie.

  5. Click Install Integration.

Datadog configuration

To test the integration, simply make a post with @opsgenie (i.e. @opsgenie This is a test alert!) in the "Events" page. This creates an alert in Opsgenie and shows up in your Datadog Events page.

Datadog event

Sample payloads sent from Datadog to Opsgenie

Metric alert payload:

JSON

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 { "event_url": "", "last_updated": 1397628633000, "event_type": "metric_alert", "snapshot_link": "https://app.datadoghq.com/alert/alert_state?alert_id=51950&to_ts=1397628600000&aggr=avg&scope=host%3Aismet-if&metric=system.disk.free&from_ts=1397627940000", "msg_title": "[Triggered] system.disk.free", "monitor_data": { "snap_url": "https://p.datadoghq.com/snapshot/view/dd-snapshots-prod/org_2305/2014-07-23/6803a21774c63347c032d92a2aff01ababfba231.png", "group": "guruop", "name": "aws.dynamodb.returned_item_count", "type": "metric alert", "group_key": "key5", "query":"min(last_5m):avg:system.cpu.idle{*} < 99", "message": "@opsgenie-service_1", "org_id": 2305, "id": 59482, "metric": "system.cpu.idle" }, "dd_tags": [ "alert", "tag2" ], "message": "%%%\n@opsgenie-team \n\n[![Metric Graph](https://p.datadoghq.com/snapshot/view/dd-snapshots-prod/org_8283/2014-04-16/7103f56dfa041445fb099f014ca5a3fce0cfcaea.png)](https://app.datadoghq.com/alert/alert_state?alert_id=51950&to_ts=1397628600000&aggr=avg&scope=host%3Aismet-if&metric=system.disk.free&from_ts=1397627940000)\n\n**system.disk.free** over **host:ismet-if** was **> 1** on average during the **last 10m**.\n\n\n%%%", "event_id": "2237506288020066106", "snapshot_url": "https://p.datadoghq.com/snapshot/view/dd-snapshots-prod/org_8283/2014-04-16/7103f56dfa041445fb099f014ca5a3fce0cfcaea.png", "priority": "normal", "alias": "ad07c3317c7a1f9a35ea4ac2fdb5d706", "msg_text": "%%%\n@opsgenie-team \n\n[![Metric Graph](https://p.datadoghq.com/snapshot/view/dd-snapshots-prod/org_8283/2014-04-16/7103f56dfa041445fb099f014ca5a3fce0cfcaea.png)](https://app.datadoghq.com/alert/alert_state?alert_id=51950&to_ts=1397628600000&aggr=avg&scope=host%3Aismet-if&metric=system.disk.free&from_ts=1397627940000)\n\n**system.disk.free** over **host:ismet-if** was **> 1** on average during the **last 10m**.\n\n\n%%%", "action": "create", "templated_message": "temp msg", "source_type_name": "Monitor Alert" }

This payload is parsed by Opsgenie as:

JSON

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 [ "last_updated": 1397628633000, "message_title": "[Triggered] system.disk.free", "query": "min(last_5m):avg:system.cpu.idle{*} < 99", "snapshot_url": "https://p.datadoghq.com/snapshot/view/dd-snapshots-prod/org_2305/2014-07-23/6803a21774c63347c032d92a2aff01ababfba231.png", "message": "@opsgenie-service_1", "priority": "normal", "event_url": "", "monitor_name": "aws.dynamodb.returned_item_count", "snapshot_link": "https://app.datadoghq.com/alert/alert_state?alert_id=51950&to_ts=1397628600000&aggr=avg&scope=host%3Aismet-if&metric=system.disk.free&from_ts=1397627940000", "templated_message": "temp msg", "event_type": "metric_alert", "event_id": "2237506288020066106", "metric": "system.cpu.idle", "alias": "ad07c3317c7a1f9a35ea4ac2fdb5d706", "action": "create", "dd_tags": [ "alert", "tag2" ], "group": "guruop", "group_key": "key5", "source_type_name": "Monitor Alert" ]

@opsgenie-acknowledge command payload:

JSON

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 { "last_updated": "1456994681000", "msg_title": "null", "user_name": "halit okumus", "user_handle": "halit.okumus@ifountain.com", "snapshot_url": "null", "source": "null", "msg_text": "@opsgenie-acknowledge I am on it", "priority": "normal", "message": "@opsgenie-acknowledge I am on it", "event_url": "", "snapshot_link": "null", "dd_tags": [ "alert", "tag2" ], "event_type": "api", "event_id": "3233503302758961154", "monitor_data": "null", "alias": "f769ea8a-1e8c-48c1-943f-b51792e14de8", "action": "acknowledge", "alertId": "f769ea8a-1e8c-48c1-943f-b51792e14de8" }

@opsgenie-close command payload:

JSON

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 { "last_updated": "1456998760000", "msg_title": "null", "user_name": "halit okumus", "user_handle": "halit.okumus@ifountain.com", "snapshot_url": "null", "source": "null", "msg_text": "@opsgenie-close closing this one", "priority": "normal", "message": "@opsgenie-close closing this one", "event_url": "", "snapshot_link": "null", "dd_tags": [ "alert", "tag2" ], "event_type": "api", "event_id": "3233571736653926401", "monitor_data": "null", "alias": "f769ea8a-1e8c-48c1-943f-b51792e14de8", "action": "close", "alertId": "f769ea8a-1e8c-48c1-943f-b51792e14de8" }

Sample payload sent from Opsgenie to Datadog

JSON

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 { "apiKey": "2980d945-18b7-4371-9299-7ff60c21082c", "alert": { "createdAt": 1456756398904, "tinyId": "48", "alias": "alertAlias", "alertId": "5c1173aa-bbdb-4e32-b393-968b803b43d3", "source": "halit@opsgenie.com", "message": "OpsGenie test alert", "entity": "alertEntity", "updatedAt": 1456756398904000500, "username": "halit@opsgenie.com", "insertedAt": 1456756398904000500, "description": "test alert description", "tag": [ "tag1", "tag2" ], "note": "test comment" //only on AddNote action, note is put here as an example }, "integrationName": "Datadog", "action": "Create", //action can be Create, Close, AddNote or Acknowledge "integrationId": "2da74f28-3288-49e9-bad5-c97775e8b247", "source": { "name": "web", "type": "API" } }

Additional Help