vitrage/doc/source/contributor/notifier-webhook-plugin.rst
Niv Oppenhaim ffed682bc2 update filter for webhook payload
Change-Id: I711074dcf28b77399fd386712a939d74b3d9d868
2018-02-07 16:12:22 +00:00

3.3 KiB

Webhook Configuration

Vitrage can be configured to support webhooks for the sending of notifications regarding raised or cleared alarms to any registered target.

Enable Webhook Notifier

To enable the webhook plugin, add it to the list of notifiers in /etc/vitrage/vitrage.conf file:

[DEFAULT]
notifiers = webhook

Webhook API

Webhooks can be added, listed and deleted from the database using the following commands:

Add

To add a new webhook to the database, use the command 'vitrage webhook add'. The fields are:

Name Description Required
url The webhook URL to which notifications will be sent Yes
regex_filter A JSON string to filter for specific events No
headers A JSON string specifying additional headers to the notification No

Usage example:

vitrage webhook add --url https://www.myserver.com --headers
"{'content-type': 'application/json'}" --regex_filter "{'vitrage_type':
'.*'}"
  • If no regex filter is supplied, all notifications will be sent.
  • The defaults headers are : '{'content-type': 'application/json'}'

Data is sent by the webhook notifier in the following format.

  • notification: vitrage.alarm.activate or vitrage.alarm.deactivate
  • payload: The alarm data
{
  "notification": "vitrage.alarm.activate",
  "payload": {
    "vitrage_id": "2def31e9-6d9f-4c16-b007-893caa806cd4",
    "resource": {
      "vitrage_id": "437f1f4c-ccce-40a4-ac62-1c2f1fd9f6ac",
      "name": "app-1-server-1-jz6qvznkmnif",
      "update_timestamp": "2018-01-22 10:00:34.327142+00:00",
      "vitrage_category": "RESOURCE",
      "vitrage_operational_state": "OK",
      "vitrage_type": "nova.instance",
      "project_id": "8f007e5ba0944e84baa6f2a4f2b5d03a",
      "id": "9b7d93b9-94ec-41e1-9cec-f28d4f8d702c"
    },
    "update_timestamp": "2018-01-22T10:00:34Z",
    "vitrage_category": "ALARM",
    "state": "Active",
    "vitrage_type": "vitrage",
    "vitrage_operational_severity": "WARNING",
    "name": "Instance memory performance degraded"
  }
}

Each of the fields listed can be used to filter the data when specifying a regex filter for the webhook.

List

List all webhooks currently in the DB:

vitrage webhook list

Show

Show a webhook with specified id:

vitrage webhook show <id>

ID of webhooks is decided by Vitrage and can be found using the 'list' command

Delete

Delete a webhook with specified id:

vitrage webhook delete <id>

ID of webhooks is decided by Vitrage and can be found using the 'list' command