From 35c276419393d9fa56632dcda8e439eb9418e873 Mon Sep 17 00:00:00 2001 From: Nikolay Stanchev <ns17@it-innovation.soton.ac.uk> Date: Thu, 8 Aug 2019 09:26:32 +0100 Subject: [PATCH] Extends alerts integration test with a threshold batch alert --- .../clmctest/alerts/alerts_test_config.yaml | 17 ++++++++++++ src/test/clmctest/alerts/test_alerts.py | 26 +++++++++---------- 2 files changed, 30 insertions(+), 13 deletions(-) diff --git a/src/test/clmctest/alerts/alerts_test_config.yaml b/src/test/clmctest/alerts/alerts_test_config.yaml index 88cc3ae..238355c 100644 --- a/src/test/clmctest/alerts/alerts_test_config.yaml +++ b/src/test/clmctest/alerts/alerts_test_config.yaml @@ -48,6 +48,23 @@ topology_template: implementation: - flame_sfemc - http://172.40.231.200:9999/ + increase_in_running_processes_batch: + description: This event triggers when the max number of running processes increases. Trigger uses batch mode for monitoring. + metadata: + monitoring_type: batch + event_type: threshold + metric: processes.running + condition: + threshold: 0 + granularity: 30 + aggregation_method: max + resource_type: + flame_location: DC1 + flame_sfp: nginx + comparison_operator: gte + action: + implementation: + - http://172.40.231.200:9999/ increase_in_active_requests: description: This event triggers when the number of nginx accept requests increases. event_type: relative diff --git a/src/test/clmctest/alerts/test_alerts.py b/src/test/clmctest/alerts/test_alerts.py index e87b825..bead3ce 100644 --- a/src/test/clmctest/alerts/test_alerts.py +++ b/src/test/clmctest/alerts/test_alerts.py @@ -59,6 +59,12 @@ expected_alerts_list = [ "task_api_endpoint": "/kapacitor/v1/tasks/f5edaeb27fb847116be749c3815d240cbf0d7ba79aee1959daf0b3445a70f2c8", "topic_api_endpoint": "/kapacitor/v1/alerts/topics/f5edaeb27fb847116be749c3815d240cbf0d7ba79aee1959daf0b3445a70f2c8", "topic_handlers_api_endpoint": "/kapacitor/v1/alerts/topics/f5edaeb27fb847116be749c3815d240cbf0d7ba79aee1959daf0b3445a70f2c8/handlers"}, + {"policy": "scale_nginx_policy", "trigger": "increase_in_running_processes_batch", "task_identifier": "0b5a63415f4e38e3bad89cf9f8c9094f7ef59497800154432283f3e193776ce3", + "handlers": ["http://172.40.231.200:9999/"], + "topic_identifier": "0b5a63415f4e38e3bad89cf9f8c9094f7ef59497800154432283f3e193776ce3", + "task_api_endpoint": "/kapacitor/v1/tasks/0b5a63415f4e38e3bad89cf9f8c9094f7ef59497800154432283f3e193776ce3", + "topic_api_endpoint": "/kapacitor/v1/alerts/topics/0b5a63415f4e38e3bad89cf9f8c9094f7ef59497800154432283f3e193776ce3", + "topic_handlers_api_endpoint": "/kapacitor/v1/alerts/topics/0b5a63415f4e38e3bad89cf9f8c9094f7ef59497800154432283f3e193776ce3/handlers"}, {"policy": "deadman_policy", "trigger": "no_measurements", "task_identifier": "f7dab6fd53001c812d44533d3bbb6ef45f0d1d39b9441bc3c60402ebda85d320", "handlers": [SFEMC, "http://172.40.231.200:9999/"], "topic_identifier": "f7dab6fd53001c812d44533d3bbb6ef45f0d1d39b9441bc3c60402ebda85d320", @@ -73,6 +79,11 @@ expected_alerts_list = [ "topic_handlers_api_endpoint": "/kapacitor/v1/alerts/topics/2707cb9c0397c1aae0f831d5893aa769c6eaeb8834c974f2c14eb2c60be5bd73/handlers"} ] +expected_deleted_alerts = [{"policy": alert_object["policy"], "trigger": alert_object["trigger"]} for alert_object in expected_alerts_list] +expected_alerts_list = sorted(expected_alerts_list, key=lambda x: x['trigger']) +expected_deleted_handlers = [{"policy": alert_object["policy"], "trigger": alert_object["trigger"], "handler": handler} for alert_object in expected_alerts_list for handler in alert_object["handlers"]] +expected_deleted_handlers = sorted(expected_deleted_handlers, key=lambda x: (x['handler'], x['trigger'])) + def is_valid_timestamp(str_timestamp): try: @@ -273,20 +284,9 @@ class TestAlerts(object): json_response = response.json() # sort by trigger to ensure comparison order is correct - assert sorted(json_response["deleted_alerts"], key=lambda x: x['trigger']) == [{"policy": "scale_nginx_policy", "trigger": "high_requests"}, {"policy": "scale_nginx_policy", "trigger": "increase_in_active_requests"}, - {"policy": "scale_nginx_policy", "trigger": "increase_in_running_processes"}, {"policy": "deadman_policy", "trigger": "no_measurements"}, - {"policy": "deadman_policy", "trigger": "service_started"}], \ - "Incorrect list of deleted alerts" + assert sorted(json_response["deleted_alerts"], key=lambda x: x['trigger']) == expected_deleted_alerts, "Incorrect list of deleted alerts" # sort by handler and trigger to ensure comparison order is correct - assert sorted(json_response["deleted_handlers"], key=lambda x: (x['handler'], x['trigger'])) == [{"policy": "scale_nginx_policy", "trigger": "increase_in_active_requests", "handler": SFEMC}, - {"policy": "scale_nginx_policy", "trigger": "increase_in_running_processes", "handler": SFEMC}, - {"policy": "deadman_policy", "trigger": "no_measurements", "handler": SFEMC}, - {"policy": "scale_nginx_policy", "trigger": "high_requests", "handler": "http://172.40.231.200:9999/"}, - {"policy": "scale_nginx_policy", "trigger": "increase_in_active_requests", "handler": "http://172.40.231.200:9999/"}, - {"policy": "scale_nginx_policy", "trigger": "increase_in_running_processes", "handler": "http://172.40.231.200:9999/"}, - {"policy": "deadman_policy", "trigger": "no_measurements", "handler": "http://172.40.231.200:9999/"}, - {"policy": "deadman_policy", "trigger": "service_started", "handler": "http://172.40.231.200:9999/"}], \ - "Incorrect list of deleted handlers" + assert sorted(json_response["deleted_handlers"], key=lambda x: (x['handler'], x['trigger'])) == expected_deleted_handlers, "Incorrect list of deleted handlers" def test_alerts_update_request(self, rspec_config): """ -- GitLab