Added a spec for supporting deduced alarms

Change-Id: Id9f69ef2acb79e77ad60a5d2324711ff1e03fc20
This commit is contained in:
Ifat Afek 2015-11-16 15:56:47 +00:00
parent eb2af28e91
commit efebcc26e3

View File

@ -0,0 +1,161 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
==================================
Vitrage Support for Deduced Alarms
==================================
https://blueprints.launchpad.net/vitrage/+spec/support-deduced-alarms
Vitrage should support raising deduced alarms.
When an alarm is raised on a certain resource, we might conclude that it results in problems in other related
resources. In this case, we would like to raise deduced alarms on these other resources, even if we got no indication
of a problem from other sources of information.
Problem description
===================
There are cases where we know that a failure in one resource should result in problems in other resources. For example,
high CPU load on a host may cause suboptimal performance of all instances running on this host, thus performance
problems in the applications running on these instances. As far as Nova is concerned, all instances are up and
running, and there is no indication of a problem.
Proposed change
===============
The Vitrage Evaluator serves as workflow manager controlling the analysis and activation of templates and execution
of template actions. One of its responsibilities is to listen to changes in Vitrage Graph, and upon a change execute
the matching templates. This is a general mechanism that should work for all kinds of templates and perform several
kinds of actions.
The aim of this blueprint is to make sure deduced alarms functionality works properly end to end.
Whenever a new alarm is raised, Vitrage Graph is updated with a new vertex for this alarm, connected to the relevant
resource. Then, the vitrage evaluator engine looks for templates that could match this new alarm. If deduced alarms
templates are found, the engine will try to find a full match for the entire template in Vitrage Graph. If found,
the engine will ask the notifier to raise new alarms according to the template.
Example for a graph with deduced alarms:
::
Original alarm:
+-----------+ +------------+
|Host High | on | |
|CPU load | +-----------> | Host |
| | | |
+-----------+ +-----+------+
|
| contains
Deduced alarm |
to raise: |
+-----------+ +-----v------+
|Instance | on | |
|Suboptimal | +-----------> | Instance |
|Performance| | |
+-----------+ +------------+
Alternatives
------------
None
Data model impact
-----------------
None
REST API impact
---------------
None
Security impact
---------------
None
Pipeline impact
---------------
None
Other end user impact
---------------------
None
Performance/Scalability Impacts
-------------------------------
None
Other deployer impact
---------------------
None
Developer impact
----------------
None
Horizon impact
--------------
None
Implementation
==============
Assignee(s)
-----------
Primary assignee:
ifat_afek <ifat.afek@alcatel-lucent.com>
Work Items
----------
The blueprint includes:
- Define the exact syntax for deduced alarms templates
- Call the notifier to raise alarms
Future lifecycle
================
None
Dependencies
============
- Vitrage Graph
- Vitrage Engine
- Vitrage Notifier
Testing
=======
This change needs to be tested by unit tests.
Documentation Impact
====================
None
References
==========
https://wiki.openstack.org/wiki/Vitrage