|
|
(6 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
− | == Introduction ==
| |
− | In Vitrage we plan on analyzing patterns of alarms and other system events, and perform actions when a pattern is detected. In order to support complex algorithms like RCA, deduced alarms, alarm aggregations etc., we need a way to express the conditions/triggers for the calculation and the resulted actions. We should define a language with a logical representation of, for example:
| |
| | | |
− | * If
| |
− | ** Ceilometer agent is down on host1 and
| |
− | ** host1 contains vm1 and
| |
− | ** we failed to get metrics on vm1
| |
− | * Then
| |
− | ** Determine that the root cause of {failure to get metrics on vm1} is {Ceilometer agent down on host1}
| |
− |
| |
− |
| |
− | Another example:
| |
− | * If
| |
− | ** There is high CPU on host2 and
| |
− | ** host2 contains several vms
| |
− | * Then
| |
− | ** Deduce that the hosted vms have sub-optimal performance
| |
− | ** Raise alarms on these vms
| |
− | ** Set their states to sub-optimal
| |
− |
| |
− |
| |
− | The defined language should let us describe conditions on different kinds of resources, their properties and the relations between them; We should then be able to define which actions should be taken if the conditions are met, e.g. determine RCA, raise/disable alarms, set resources states, etc. The model should be generic and flexible, so defining a new rule would not require change of code.
| |