Merge "Aodh get-all synchronizer spec"

This commit is contained in:
Jenkins 2016-04-27 07:24:34 +00:00 committed by Gerrit Code Review
commit 067df42c9a

View File

@ -0,0 +1,173 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
=================================================
Aodh Synchronizer Plugin - get_all implementation
=================================================
launchpad blueprint:
https://blueprints.launchpad.net/vitrage/+spec/synchronizer-aodh-get-all
This blueprint describes the Aodh plugin for Vitrage Synchronizer, and its
implementation for get_all Aodh alarms.
Problem description
===================
Aodh alarms should be added to Vitrage Graph via Vitrage Synchronizer.
This requires writing a Synchronizer plugin for Aodh.
The plugin should support two modes:
* get_all: query all Aodh alarms and send corresponding events to the Synchronizer
* notifications: notify the Synchronizer upon a change in an Aodh alarm definition or state
This blueprint refers to get_all implementation.
Proposed change
===============
Aodh plugin will be configured with:
* Poll interval in seconds (default: 60)
Every poll-interval seconds, Aodh plugin will call Aodh list all alarms API. The alarms will be converted to Vitrage Synchronizer events and passed to Vitrage Graph queue.
Alternatives
------------
None
Data model impact
-----------------
Aodh event will be sent to Vitrage Graph queue with the following properties:
+------------------+----------------------------------------------------------+-----------------------------------------------------+
| Field | Description | Examples |
+==================+==========================================================+=====================================================+
| alarm_id | The alarm UUID | e47e1be6-3598-46e6-bb63-0cc9a4e35ad7 |
+------------------+----------------------------------------------------------+-----------------------------------------------------+
| name | The alarm name | CpuUtilAlarm1 |
+------------------+----------------------------------------------------------+-----------------------------------------------------+
| description | The alarm description | Alarm when cpu is eq a avg of 300.0 over 60 seconds |
+------------------+----------------------------------------------------------+-----------------------------------------------------+
| enabled | Is the alarm enabled | true/false |
+------------------+----------------------------------------------------------+-----------------------------------------------------+
| project_id | The ID of the project or tenant that owns the alarm | 5542b27142154f30b32dea6238aa81aa |
+------------------+----------------------------------------------------------+-----------------------------------------------------+
| repeat_actions | Should actions be re-triggered on each evaluation cycle | true/false |
+------------------+----------------------------------------------------------+-----------------------------------------------------+
| severity | The alarm severity | low/moderate/critical |
+------------------+----------------------------------------------------------+-----------------------------------------------------+
| state | The alarm state | ok/alarm/insufficient data |
+------------------+----------------------------------------------------------+-----------------------------------------------------+
| time_constraints | Optional. Evaluate the alarm within this time constraint | ? |
+------------------+----------------------------------------------------------+-----------------------------------------------------+
| type | The alarm type | threshold/event |
+------------------+----------------------------------------------------------+-----------------------------------------------------+
| user_id | The ID of the user who created the alarm | 8ab65ef808b245e3ba234b7b3554cb94 |
+------------------+----------------------------------------------------------+-----------------------------------------------------+
| resource_id | Optional. The resource id in the query of the alarm rule | b0bf3635-d9e8-4624-9793-7aac82948c0a |
+------------------+----------------------------------------------------------+-----------------------------------------------------+
| sync_type | The source of information | aodh (constant value) |
+------------------+----------------------------------------------------------+-----------------------------------------------------+
Aodh threshold alarms will include in addition:
+------------------+----------------------------------------------------------+-----------------------------------------------------+
| Field | Description | Examples |
+==================+==========================================================+=====================================================+
| state_timestamp | The date of the last alarm state changed | 2016-03-01T17:13:08.847812 |
+------------------+----------------------------------------------------------+-----------------------------------------------------+
| timestamp | The date of the last alarm definition update | 2016-03-01T17:13:08.847812 |
+------------------+----------------------------------------------------------+-----------------------------------------------------+
| threshold_rule | The threshold rule, for a threshold alarm | dictionary |
+------------------+----------------------------------------------------------+-----------------------------------------------------+
Aodh event alarms will include in addition:
+------------------+----------------------------------------------------------+-----------------------------------------------------+
| Field | Description | Examples |
+==================+==========================================================+=====================================================+
| event_type | Event type for event alarm | compute.instance.update |
+------------------+----------------------------------------------------------+-----------------------------------------------------+
| timestamp | Does not exist in Aodh? current time will be used | 2016-03-01T17:13:08.847812 |
+------------------+----------------------------------------------------------+-----------------------------------------------------+
Gnocchi alarms, combination alarms and composite alarms are still TBD.
TBD: how this information will be transformed to a Vitrage Graph vertex
REST API impact
---------------
None
Versioning impact
-----------------
None
Other end user impact
---------------------
None
Deployer impact
---------------
Aodh plugin should be configured
Developer impact
----------------
None
Horizon impact
--------------
None
Implementation
==============
Assignee(s)
-----------
Primary assignee:
ifat-afek
Work Items
----------
None
Dependencies
============
None
Testing
=======
This blueprint requires unit tests and Tempest tests.
Documentation Impact
====================
Aodh Configuration should be documented
References
==========
Synchronizer main blueprint:
https://github.com/openstack/vitrage-specs/blob/master/specs/mitaka/vitrage-synchronizer.rst