vitrage/doc/source/contributor/notifier-webhook-plugin.rst
Niv Oppenhaim 274c5b71bf add support for webhooks
Implements: blueprint configurable-notifications
Change-Id: I0c808c5e44f9d6092d113bb277c8ab8cf0d69716
2018-01-22 10:15:40 +00:00

116 lines
3.8 KiB
ReStructuredText

=====================
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:
.. code::
[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",
"state": "active",
"vitrage_type": "nova.instance",
"vitrage_sample_timestamp": "2018-01-22 10:00:34.327142+00:00",
"vitrage_aggregated_state": "ACTIVE",
"host_id": "iafek-devstack-pre-queens",
"project_id": "8f007e5ba0944e84baa6f2a4f2b5d03a",
"id": "9b7d93b9-94ec-41e1-9cec-f28d4f8d702c"
},
"severity": "warning",
"update_timestamp": "2018-01-22T10:00:34Z",
"resource_id": "437f1f4c-ccce-40a4-ac62-1c2f1fd9f6ac",
"vitrage_category": "ALARM",
"state": "Active",
"vitrage_type": "vitrage",
"vitrage_sample_timestamp": "2018-01-22 10:00:34.366364+00:00",
"vitrage_operational_severity": "WARNING",
"vitrage_aggregated_severity": "WARNING",
"vitrage_resource_id": "437f1f4c-ccce-40a4-ac62-1c2f1fd9f6ac",
"vitrage_resource_type": "nova.instance",
"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