vitrage 4.1.0 (stein)
We are overjoyed to announce the release of: vitrage 4.1.0: The OpenStack RCA Service This release is part of the stein release series. The source is available from: https://git.openstack.org/cgit/openstack/vitrage Download the package from: https://tarballs.openstack.org/vitrage/ For more details, please see below. 4.1.0 ^^^^^ New Features * Added a new API to list all vitrage services present in the system. * A new "zaqar notifier" was added, in order to send alrmas from Vitrage to zaqar messaging framework. * Added support for a yaml configuration file that maps the Prometheus alert labels to a corresponding Vitrage resource with specific properties (id or other unique properties). * Added support for get_all alerts from Prometheus Alertmanager. * Added support for parameters in Vitrage templates. A template may contain one or more "parameters" that are assigned with actual values upon template creation. This enables easy reuse of common templates. * Introduced template version 3, a shorter, more fluent template language. Overall template yaml appearance improvements. *condition* definitions were revised, *relationships* declarations removed. Changes in vitrage 4.0.0..4.1.0 ------------------------------- e72846d Template v3 causing alarm implemented. 7bed18c use the right assertion 76fd30f Support parameters in Vitrage templates 2b1f91d Prometheus get_all support 28bd060 Template parameters documentation a2ce45c Document version 3 template format 12f70b9 add a new service list api 3e725e7 properties should be created in c'tor a859882 Template version 3 - short format 49b5fbc Documentation for Prometheus datasource and Release note for Prometheus configuration 8e751d3 Generalize prometheus datasource b9aaaa3 WIP - add libvirt instance_name to Vitrage entity 15aec9d add pre_test_hook file cbf1b32 Add a new zaqar notifier 3ca2eb6 [Trivial Fix] Add missing block quote 94483c2 Update the bugs link to storyboard Diffstat (except docs and test files) ------------------------------------- CONTRIBUTING.rst | 4 +- devstack/plugin.sh | 6 + .../template_validation_status_code.rst | 9 + .../contributor/vitrage-template-format-v2.rst | 729 +++++++++++++++++++++ lower-constraints.txt | 4 + openstack-common.conf | 6 - playbooks/legacy/vitrage-dsvm-api-py27/run.yaml | 5 + playbooks/legacy/vitrage-dsvm-api-py35/run.yaml | 5 + .../legacy/vitrage-dsvm-datasources-py27/run.yaml | 5 + .../legacy/vitrage-dsvm-datasources-py35/run.yaml | 5 + playbooks/legacy/vitrage-dsvm-mock-py27/run.yaml | 5 + playbooks/legacy/vitrage-dsvm-mock-py35/run.yaml | 5 + .../notes/add_service_list-d8e28adabc26f1cf.yaml | 3 + .../notes/add_zaqar_notifier-63de714384091ce5.yaml | 3 + .../prometheus-enhancement-b9dc2ef5705d1000.yaml | 6 + ...pport-template-parameters-f9552fef4fc66122.yaml | 5 + .../notes/template_version_3-cd8a0775b2f2e7cd.yaml | 5 + requirements.txt | 3 + test-requirements.txt | 1 + vitrage/api/app.py | 3 +- vitrage/api/controllers/v1/root.py | 2 + vitrage/api/controllers/v1/service.py | 49 ++ vitrage/api/controllers/v1/template.py | 19 +- vitrage/api/hooks.py | 12 + vitrage/api_handler/apis/template.py | 12 +- vitrage/common/constants.py | 5 +- vitrage/common/policies/__init__.py | 4 +- vitrage/common/policies/service.py | 37 ++ vitrage/coordination/__init__.py | 21 + vitrage/coordination/coordination.py | 113 ++++ vitrage/coordination/service.py | 32 + .../datasources/nova/instance/field_extractor.py | 13 + vitrage/datasources/nova/instance/transformer.py | 4 + vitrage/datasources/prometheus/__init__.py | 9 + vitrage/datasources/prometheus/driver.py | 432 +++++++++--- vitrage/datasources/prometheus/properties.py | 50 +- vitrage/datasources/prometheus/transformer.py | 40 +- vitrage/entity_graph/workers.py | 6 +- .../actions/evaluator_event_transformer.py | 22 +- vitrage/evaluator/base.py | 21 +- vitrage/evaluator/condition.py | 9 +- vitrage/evaluator/scenario_evaluator.py | 2 +- vitrage/evaluator/scenario_repository.py | 25 +- vitrage/evaluator/template_data.py | 9 +- .../evaluator/template_db/template_repository.py | 39 +- vitrage/evaluator/template_fields.py | 3 + vitrage/evaluator/template_functions/__init__.py | 17 + .../template_functions/function_resolver.py | 96 +++ .../evaluator/template_functions/v2/__init__.py | 43 ++ .../evaluator/template_functions/v2/functions.py | 101 ++- .../evaluator/template_loading/scenario_loader.py | 105 +-- .../evaluator/template_loading/template_loader.py | 32 +- .../template_loading/template_loader_v3.py | 158 +++++ .../evaluator/template_loading/v1/action_loader.py | 4 +- vitrage/evaluator/template_loading/v3/__init__.py | 0 .../evaluator/template_loading/v3/action_loader.py | 35 + .../template_loading/v3/raise_alarm_loader.py | 41 ++ vitrage/evaluator/template_schemas.py | 48 +- vitrage/evaluator/template_validation/__init__.py | 25 +- vitrage/evaluator/template_validation/base.py | 23 +- .../content/template_content_validator.py | 13 +- .../content/template_content_validator_v3.py | 135 ++++ .../content/v1/execute_mistral_validator.py | 2 +- .../content/v1/get_param_validator.py | 31 + .../content/v2/execute_mistral_validator.py | 2 +- .../content/v2/get_param_validator.py | 30 + .../template_validation/status_messages.py | 24 +- .../template_syntax_validator.py | 35 +- .../template_syntax_validator_v3.py | 137 ++++ vitrage/graph/driver/elements.py | 7 +- vitrage/graph/filter.py | 6 +- vitrage/machine_learning/service.py | 8 +- vitrage/notifier/plugins/__init__.py | 15 - vitrage/notifier/plugins/aodh/aodh_notifier.py | 4 +- vitrage/notifier/plugins/nova/nova_notifier.py | 4 +- vitrage/notifier/plugins/webhook/webhook.py | 19 +- vitrage/notifier/plugins/zaqar/__init__.py | 28 + vitrage/notifier/plugins/zaqar/zaqar_notifier.py | 40 ++ vitrage/notifier/service.py | 9 +- vitrage/opts.py | 4 + vitrage/os_clients.py | 13 + vitrage/persistency/service.py | 8 +- vitrage/snmp_parsing/service.py | 8 +- .../listener_service/test_listener_service.py | 2 +- .../driver/driver_prometheus_update_dynamic.json | 166 +++-- .../transformer_prometheus_update_dynamic.json | 11 +- .../resources/prometheus/prometheus_conf.yaml | 22 + .../templates/parameters/with_extra_param_def.yaml | 43 ++ .../parameters/with_missing_param_def.yaml | 37 ++ .../templates/parameters/with_params.yaml | 41 ++ .../templates/parameters/without_params.yaml | 32 + .../templates/v3_templates/valid_actions.yaml | 63 ++ .../templates/v3_templates/valid_conditions.yaml | 58 ++ .../nova/base_nova_instance_transformer.py | 10 +- .../test_instance_transformer_snapshot_events.py | 3 +- .../prometheus/test_prometheus_driver.py | 202 +++++- .../prometheus/test_prometheus_transformer.py | 68 +- .../datasources/test_alarm_transformer_base.py | 34 +- .../template_loading/test_template_loading_v3.py | 451 +++++++++++++ .../template_loading/v2/test_template_loader.py | 4 +- .../content/v1/test_parameters_validator.py | 40 ++ .../content/v2/test_parameters_validator.py | 200 ++++++ .../test_template_syntax_validator.py | 17 +- .../test_template_validator_v3.py | 346 ++++++++++ .../test_jaccard_correlation.py | 39 +- 131 files changed, 5846 insertions(+), 1158 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index bee35a9..2deac1f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -18,0 +19 @@ python-troveclient>=2.2.0 # Apache-2.0 +python-zaqarclient >=1.2.0 @@ -53,0 +55,2 @@ tenacity>=4.9.0 +tooz>=1.58.0 # Apache-2.0 +psutil>=5.4.3 # BSD \ No newline at end of file diff --git a/test-requirements.txt b/test-requirements.txt index 1cee643..b39f308 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -14,0 +15 @@ mock>=2.0.0 # BSD +zake>=0.1.6 # Apache-2.0
participants (1)
-
no-reply@openstack.org