Webhooks¶
launchpad blueprint: https://blueprints.launchpad.net/vitrage/+spec/configurable-notifications
The Evaluator performs root cause analysis on the Vitrage Graph and may determine that an alarm should be created, deleted or otherwise updated. Other components are notified of such changes by the Vitrage Notifier service. Among others, Vitrage Notifier is responsible for sending http post notifications on Vitrage deduced alarms.
This blueprint describes the implementation of Vitrage Notifier for webhooks on Vitrage alarms and state changes.
Problem description¶
Vitrage should support webhooks for notfications, which are sent on raised alarms, deactivated alarms, state changes, RCA or other to any registered targets. Furthermore any registered recipient should supply a regex to filter the alarms sent to that recipient.
Proposed change¶
Needed definitions in Vitrage config file:
[DEFAULT]
notifiers = webhook
Vitrage listener will get the alarm events from the message bus and the webhook notifier will send http post notifications on raised deduced alarms and deleted deduced alarms.
The filtered notifications will be sent to the destinations that are written in the database, as configured via API requests.
The notifications will be sent only on alarms which meet the regex filter specified in the webhook specification.
The format of sent notifications will be hard coded.
As Vitrage notifiers are pluggable, you can write your own notifier and use it. Specifically in this case, you can inherit the webhook base class and implement your own webhook notifier.
Alternatives¶
None
Data model impact¶
New DB table, to represent registration details Preliminary columns :
ID
Date
Address
Headers
Filter
REST API impact¶
An API which supports adding, removing and listing webhooks
Versioning impact¶
None
Other end user impact¶
None
Deployer impact¶
To use webhooks one needs to define it in the Vitrage config file.
Developer impact¶
None
Horizon impact¶
Future support for webhooks in Horizon
Implementation¶
Assignee(s)¶
- Primary assignee:
nivo
Work Items¶
Add DB table
Add API
Implement notifier
Update docs
Tests
Dependencies¶
None
Testing¶
This blueprint requires tempest tests and unit tests.
Documentation Impact¶
The usage of webhooks will be documented
References¶
Example on http post notifications in AODH http post request