mirror of
https://github.com/Icinga/icingaweb2.git
synced 2026-03-14 22:53:19 -04:00
This re-introduces expensive columns been disabled time ago and adds even more to it. We are now showing last comment, last ack comment and service problem count on hosts in list views. It still costs performance, but seems that we can stand it. I'd like to add more like this to the host view.
120 lines
4 KiB
PHP
120 lines
4 KiB
PHP
<?php
|
|
|
|
namespace Icinga\Module\Monitoring\Object;
|
|
|
|
use Icinga\Module\Monitoring\DataView\ServiceStatus;
|
|
use Icinga\Data\Db\DbQuery;
|
|
|
|
class Service extends AbstractObject
|
|
{
|
|
public $type = 'service';
|
|
public $prefix = 'service_';
|
|
|
|
protected function applyObjectFilter(DbQuery $query)
|
|
{
|
|
return $query->where('service_host_name', $this->host_name)
|
|
->where('service_description', $this->service_description);
|
|
}
|
|
|
|
public function populate()
|
|
{
|
|
$this->fetchComments()
|
|
->fetchServicegroups()
|
|
->fetchContacts()
|
|
->fetchContactGroups()
|
|
->fetchCustomvars()
|
|
->fetchDowntimes();
|
|
}
|
|
|
|
protected function getProperties()
|
|
{
|
|
$this->view = ServiceStatus::fromParams(array('backend' => null), array(
|
|
'host_name',
|
|
'host_state',
|
|
'host_state_type',
|
|
'host_last_state_change',
|
|
'host_address',
|
|
'host_problem',
|
|
'host_handled',
|
|
'service_description',
|
|
'service_display_name',
|
|
'service_state',
|
|
'service_in_downtime',
|
|
'service_acknowledged',
|
|
'service_handled',
|
|
'service_unhandled',
|
|
'service_output',
|
|
'service_last_state_change',
|
|
'service_icon_image',
|
|
'service_long_output',
|
|
'service_is_flapping',
|
|
'service_state_type',
|
|
'service_severity',
|
|
'service_last_check',
|
|
'service_notifications_enabled',
|
|
'service_notifications_enabled_changed',
|
|
'service_action_url',
|
|
'service_notes_url',
|
|
'service_last_check',
|
|
'service_next_check',
|
|
'service_attempt',
|
|
'service_last_notification',
|
|
'service_check_command',
|
|
'service_check_source',
|
|
'service_current_notification_number',
|
|
'host_icon_image',
|
|
'host_acknowledged',
|
|
'host_output',
|
|
'host_long_output',
|
|
'host_in_downtime',
|
|
'host_is_flapping',
|
|
'host_last_check',
|
|
'host_notifications_enabled',
|
|
'host_unhandled_services',
|
|
'host_action_url',
|
|
'host_notes_url',
|
|
'host_display_name',
|
|
'host_alias',
|
|
'host_ipv4',
|
|
'host_severity',
|
|
'host_perfdata',
|
|
'host_active_checks_enabled',
|
|
'host_passive_checks_enabled',
|
|
'host_last_hard_state',
|
|
'host_last_hard_state_change',
|
|
'host_last_time_up',
|
|
'host_last_time_down',
|
|
'host_last_time_unreachable',
|
|
'host_modified_host_attributes',
|
|
'host',
|
|
'service',
|
|
'service_hard_state',
|
|
'service_problem',
|
|
'service_perfdata',
|
|
'service_active_checks_enabled',
|
|
'service_active_checks_enabled_changed',
|
|
'service_passive_checks_enabled',
|
|
'service_passive_checks_enabled_changed',
|
|
'service_last_hard_state',
|
|
'service_last_hard_state_change',
|
|
'service_last_time_ok',
|
|
'service_last_time_warning',
|
|
'service_last_time_critical',
|
|
'service_last_time_unknown',
|
|
'service_check_execution_time',
|
|
'service_check_latency',
|
|
'service_current_check_attempt',
|
|
'service_max_check_attempts',
|
|
'service_obsessing',
|
|
'service_obsessing_changed',
|
|
'service_event_handler_enabled',
|
|
'service_event_handler_enabled_changed',
|
|
'service_flap_detection_enabled',
|
|
'service_flap_detection_enabled_changed',
|
|
'service_modified_service_attributes',
|
|
))->where('host_name', $this->params->get('host'))
|
|
->where('service_description', $this->params->get('service'));
|
|
|
|
return $this->view->getQuery()->fetchRow();
|
|
}
|
|
}
|