congress/congress
Eric K d10c7db6eb vitrage driver for accepting webhook notifications
Accepts POST webhook notifications [1] at
/v1/data-sources/<data-source-name>/webhook

On alarm activate notification from Vitrage, a new alarm row [2]
is created in Congress vitrage data source service.

On alarm deactivate notification from Vitrage, the corresponding
alarm row is deleted in Congress vitrage data source service.

A retry policy on the sender side would be helpful to avoid
notifications being lost to transient issues
(example from zaqar [3]).

Nonetheless, it is still possible that an alarm deactivate
notification is missed, and an alarm row remains in Congress
indefinitely.

To clean-up these rows, the optional config
'hours_to_keep_alarm' sets the approximate number of hours
before an active alarm row is deleted from Congress.

[1] Expected payload format:
{
  "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"
  }
}
https://docs.openstack.org/vitrage/latest/contributor/notifier-webhook-plugin.html

[2] alarms table schema:
    'name'
    'state'
    'type'
    'operational_severity',
    'vitrage_id'
    'update_timestamp'
    'receive_timestamp'
    'resource_name'
    'resource_id'
    'resource_vitrage_id'
    'resource_project_id'
    'resource_operational_state'
    'resource_type'

[3] https://docs.openstack.org/zaqar/pike/user/notification_delivery_policy.html

Change-Id: I1943cb81eadb1abba9e62d3d886778a09ec63118
2018-07-24 18:09:32 -07:00
..
api update datasource webhook framework 2018-07-23 21:49:14 +00:00
cfg_validator Unblock gate 2018-06-20 15:22:32 -07:00
common Merge "cors: update default configuration" 2018-06-28 05:13:11 +00:00
datalog Wrong error message 2018-07-05 12:51:55 +05:30
datasources vitrage driver for accepting webhook notifications 2018-07-24 18:09:32 -07:00
db DB operations retry on deadlock 2018-02-07 11:46:23 -08:00
dse2 Merge "Remove unnecessary ERROR logging" 2018-07-18 19:01:35 +00:00
library_service Remove unnecessary ERROR logging 2018-06-05 13:01:14 -07:00
policy_engines Merge "Remove unnecessary ERROR logging" 2018-07-18 19:01:35 +00:00
server Enable mutable config in Congress 2018-04-09 03:57:01 +00:00
synchronizer Fix sphinx warnings in docstring and re-enable autodoc 2017-10-13 17:56:16 +00:00
tests vitrage driver for accepting webhook notifications 2018-07-24 18:09:32 -07:00
__init__.py Removes unnecessary utf-8 encoding 2017-02-27 19:38:03 -08:00
auth.py delete unused log translations 2017-03-28 16:29:37 +08:00
context.py Use oslo.context from_dict unmodified 2018-03-15 05:04:18 +00:00
encryption.py Fix intermittent gate failure on key file generation 2017-11-20 10:23:56 +05:30
exception.py Add disable_drivers config option 2018-04-10 13:59:39 +05:30
harness.py Unblock gate 2018-06-20 15:22:32 -07:00
opts.py Fixes congress.conf.sample file generation 2017-01-20 08:01:43 -06:00
service.py Use only strings in paste.deploy.loadapp global_conf 2016-09-15 18:00:11 +00:00
utils.py Data source driver preserves data types 2018-07-05 00:03:44 +00:00
version.py Use python3 print, division, import 2016-01-20 15:31:02 -08:00