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