From 2fdc1f4322981fde2e0cc391e2a54d783b491282 Mon Sep 17 00:00:00 2001 From: Johannes Meyer Date: Thu, 20 Nov 2014 09:48:47 +0100 Subject: [PATCH] Sort the hostgroup- and servicegroupsummary by service severity --- .../Backend/Ido/Query/GroupsummaryQuery.php | 8 ++++--- .../Monitoring/DataView/Groupsummary.php | 22 ++++++++++++++++++- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/modules/monitoring/library/Monitoring/Backend/Ido/Query/GroupsummaryQuery.php b/modules/monitoring/library/Monitoring/Backend/Ido/Query/GroupsummaryQuery.php index d38c40c8f..17e1061e1 100644 --- a/modules/monitoring/library/Monitoring/Backend/Ido/Query/GroupsummaryQuery.php +++ b/modules/monitoring/library/Monitoring/Backend/Ido/Query/GroupsummaryQuery.php @@ -4,7 +4,6 @@ namespace Icinga\Module\Monitoring\Backend\Ido\Query; -use Icinga\Application\Logger; use Zend_Db_Select; class GroupSummaryQuery extends IdoQuery @@ -36,6 +35,7 @@ class GroupSummaryQuery extends IdoQuery 'services_warning_unhandled' => 'SUM(CASE WHEN object_type = \'service\' AND state = 1 AND acknowledged + in_downtime + host_state = 0 THEN 1 ELSE 0 END)', 'services_critical_unhandled' => 'SUM(CASE WHEN object_type = \'service\' AND state = 2 AND acknowledged + in_downtime + host_state = 0 THEN 1 ELSE 0 END)', 'services_unknown_unhandled' => 'SUM(CASE WHEN object_type = \'service\' AND state = 3 AND acknowledged + in_downtime + host_state = 0 THEN 1 ELSE 0 END)', + 'services_highest_severity' => 'MAX(CASE WHEN object_type = \'service\' THEN severity ELSE 0 END)', 'services_ok_last_state_change' => 'MAX(CASE WHEN object_type = \'service\' AND state = 0 THEN state_change ELSE 0 END)', 'services_pending_last_state_change' => 'MAX(CASE WHEN object_type = \'service\' AND state = 99 THEN state_change ELSE 0 END)', 'services_warning_last_state_change_handled' => 'MAX(CASE WHEN object_type = \'service\' AND state = 1 AND acknowledged + in_downtime + host_state > 0 THEN state_change ELSE 0 END)', @@ -67,7 +67,8 @@ class GroupSummaryQuery extends IdoQuery 'state' => 'host_state', 'acknowledged' => 'host_acknowledged', 'in_downtime' => 'host_in_downtime', - 'state_change' => 'host_last_state_change' + 'state_change' => 'host_last_state_change', + 'severity' => 'host_severity' ) ); if (in_array('servicegroup', $this->desiredColumns)) { @@ -79,7 +80,8 @@ class GroupSummaryQuery extends IdoQuery 'state' => 'service_state', 'acknowledged' => 'service_acknowledged', 'in_downtime' => 'service_in_downtime', - 'state_change' => 'service_last_state_change' + 'state_change' => 'service_last_state_change', + 'severity' => 'service_severity' ) ); diff --git a/modules/monitoring/library/Monitoring/DataView/Groupsummary.php b/modules/monitoring/library/Monitoring/DataView/Groupsummary.php index 72b021fa9..40c44ac40 100644 --- a/modules/monitoring/library/Monitoring/DataView/Groupsummary.php +++ b/modules/monitoring/library/Monitoring/DataView/Groupsummary.php @@ -24,6 +24,7 @@ class Groupsummary extends DataView 'hosts_down_handled', 'hosts_down_unhandled', 'hosts_pending', + 'services_total', 'services_ok', 'services_unknown', 'services_unknown_handled', @@ -34,7 +35,26 @@ class Groupsummary extends DataView 'services_warning', 'services_warning_handled', 'services_warning_unhandled', - 'services_pending' + 'services_pending', + 'services_highest_severity', + 'services_ok_last_state_change', + 'services_pending_last_state_change', + 'services_warning_last_state_change_handled', + 'services_critical_last_state_change_handled', + 'services_unknown_last_state_change_handled', + 'services_warning_last_state_change_unhandled', + 'services_critical_last_state_change_unhandled', + 'services_unknown_last_state_change_unhandled' + ); + } + + public function getSortRules() + { + return array( + 'services_highest_severity' => array( + 'columns' => array('services_highest_severity'), + 'order' => self::SORT_DESC + ) ); } }