Wavefront Integration

Wavefront is a streaming analytics platform that has been designed for monitoring/optimization in the data center. Wavefront provides metrics and statistical data for cloud-based systems. OpsGenie is an alert and notification management solution that is highly complementary to Wavefront's alerting mechanism.

What does OpsGenie have to Wavefront users?

By using OpsGenie Wavefront Integration, you can forward Wavefront alerts to OpsGenie. OpsGenie can determine the right people to notify based on on-call schedules, using email, text messages (SMS), phone calls and iPhone & Android push notifications, and escalating alerts until the alert is acknowledged or closed.


Functionality of the integration

  • When an alert is fired by Wavefront, an alert is created in OpsGenie automatically through the integration.
  • When an alert is resolved in Wavefront, the alert will be closed in OpsGenie automatically through the integration.

Add Wavefront Integration in OpsGenie

  1. Please create an OpsGenie account if you haven't done already
  2. Go to OpsGenie Wavefront Integration page,
  3. Specify who should be notified for Wavefront alerts using the "Teams" field. Auto-complete suggestions will be provided as you type.
  4. Copy the Webhook URL by clicking on the copy button or selecting.
  5. Click on "Save Integration".

Configuration in Wavefront

  1. In Wavefront, click on the Browse button in the top menu.
  2. Select Web Hooks.
  3. Click on the Create button on the upper right side of the page.
  4. Fill the Title field and choose Alert Opened and Alert Resolved as Triggers.
  5. Paste API URL into the URL field.
  6. Select application/json for the Content Type field.
  7. Fill the Web Hook POST Body Template field yourself or select Default Template.
  8. Fill the Description field.
  9. Click on Save button.

Sample payload sent from Wavefront

{
  "alertId": "1471312865666",
  "notificationId": "ae63a700-9e0b-4c13-816b-5caa3acf4f63",
  "reason": "ALERT_OPENED",
  "name": "Example Alert",
  "severity": "INFO",
  "severitySmoke": false,
  "severityInfo": true,
  "severityWarn": false,
  "severitySevere": false,
  "condition": "mmax(5m, ts(~sample.requests.latency, env=production)) > 100",
  "url": "https://try.wavefront.com/u/pSNB7gHXPn",
  "createdTime": "08/16/2016 02:01:05 +0000",
  "startedTime": "08/16/2016 10:05:21 +0000",
  "sinceTime": "08/16/2016 10:03:21 +0000",
  "endedTime": "",
  "snoozedUntilTime": "",
  "subject": "[INFO] OPENED: Example Alert",
  "hostsFailingMessage": "app-6 (~sample.requests.latency) [env=production][az=us-west-2]\napp-7 (~sample.requests.latency) [env=production][az=us-west-2]\napp-9 (~sample.requests.latency) [env=production][az=us-west-2]\napp-20 (~sample.requests.latency) [env=production][az=us-west-2]\napp-10 (~sample.requests.latency) [env=production][az=us-west-2]\napp-15 (~sample.requests.latency) [env=production][az=us-west-2]\napp-14 (~sample.requests.latency) [env=production][az=us-west-2]\napp-13 (~sample.requests.latency) [env=production][az=us-west-2]\napp-11 (~sample.requests.latency) [env=production][az=us-west-2]\napp-12 (~sample.requests.latency) [env=production][az=us-west-2]\napp-19 (~sample.requests.latency) [env=production][az=us-west-2]\napp-8 (~sample.requests.latency) [env=production][az=us-west-2]\napp-17 (~sample.requests.latency) [env=production][az=us-west-2]\napp-18 (~sample.requests.latency) [env=production][az=us-west-2]\napp-16 (~sample.requests.latency) [env=production][az=us-west-2]",
  "errorMessage": "",
  "additionalInformation": "",
  "failingSources": [
    "app-6",
    "app-7",
    "app-9",
    "app-20",
    "app-10",
    "app-15",
    "app-14",
    "app-13",
    "app-11",
    "app-12",
    "app-19",
    "app-8",
    "app-17",
    "app-18",
    "app-16"
  ],
  "inMaintenanceSources": [],
  "newlyFailingSources": [
    "app-17",
    "app-7",
    "app-19",
    "app-13",
    "app-20",
    "app-15",
    "app-6",
    "app-11",
    "app-16",
    "app-18",
    "app-8",
    "app-9",
    "app-14",
    "app-12",
    "app-10"
  ],
  "recoveredSources": [],
  "failingSeries": [
    [
      "app-6",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-7",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-9",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-20",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-10",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-15",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-14",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-13",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-11",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-12",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-19",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-8",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-17",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-18",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-16",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ]
  ],
  "inMaintenanceSeries": [],
  "newlyFailingSeries": [
    [
      "app-17",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-7",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-19",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-13",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-20",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-15",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-6",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-11",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-16",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-18",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-8",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-9",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-14",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-12",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ],
    [
      "app-10",
      "~sample.requests.latency",
      [
        "env=production",
        "az=us-west-2"
      ]
    ]
  ],
  "recoveredSeries": []
}

Sample alert