mirror of
https://github.com/Icinga/icingaweb2.git
synced 2025-06-29 18:14:26 +02: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.
121 lines
4.0 KiB
PHP
121 lines
4.0 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();
|
|
}
|
|
}
|