Evaluator Engine

Launchpad blueprint:

https://blueprints.launchpad.net/vitrage/+spec/evaluator-engine

Vitrage Evaluator serves as workflow manager controlling the analysis and activation of templates and execution of template actions.

Evaluator engine is the main core of Vitrage evaluator which responsible for managing the templates, executing them over Vitrage Graph and running their action.

+---------------------+
|                     |
|                     <------------------+
|   Vitrage Graph     |                  |
|                     |          +-------+-------------------+
|                     |          | Vitrage Evaluator         |
+--------------+------+          |                           |
               |                 |                  +------+ |
               |                 |                  | RCA  | |
               +----------------->                  |      | |
                                 |                  +------+ |
                                 |                  +------+ |
+---------------------+          |                  |Deduce| |
|                     <----------+                  |Alarm | |
|   Vitrage Notifier  |          |                  +------+ |
|                     |          |                           |
|                     |          +---------------------------+
|                     |
+---------------------+

Problem description

Vitrage requires a component that is responsible for managing and executing templates, which are the basis for the different algorithms used in Vitrage, such as RCA.

Use cases:
  1. When a new instance is added/removed/updated in the Vitrage Graph, find the templates relevant to this change and compare the pattern specified in each template to the new graph structure. For each pattern match found, execute the actions specified in the template.

  2. When a new alarm is added/removed/updated in the Vitrage Graph, find the templates relevant to this change and compare the pattern specified in each template to the new graph structure. For each pattern match found, execute the actions specified in the template.

Proposed change

Managing Templates

Users can perform CRUD actions on templates, in order to make changes to the use cases Vitrage supports. Specifically, when adding a template it should be added and stored in graph format and saved in NetworkX (Graph-based in-memory DB). Similarly, this template can be modified or deleted as well. The functionality added here should have a corresponding set of API calls for users to perform these actions.

Executing Templates

When a change takes place in the Vitrage Graph, it informs the Evaluator Engine of the change. The engine will then search for templates relevant to this change and compare the pattern specified in each template to the new graph structure. For each pattern match found, execute the actions specified in the template.

Alternatives

None

Data model impact

The templates are saved in NetworkX graph-base in memory DB.

REST API impact

The functionality added here for managing templates should have a corresponding set of API calls for users to perform these actions.

Versioning impact

None

Other end user impact

None

Deployer impact

None

Developer impact

None

Horizon impact

None

Implementation

Assignee(s)

TBD

Work Items

Dependencies

  • API with Vitrage Graph

  • API with Vitrage Notifier

Testing

TBD

Documentation Impact

TBD

References

TBD