Skip to content

Commit

Permalink
Add tinystatesummary for hosts overview
Browse files Browse the repository at this point in the history
  • Loading branch information
Alexander Fuhr committed Nov 14, 2014
1 parent 11bb8db commit 038964a
Show file tree
Hide file tree
Showing 4 changed files with 97 additions and 0 deletions.
12 changes: 12 additions & 0 deletions modules/monitoring/application/controllers/ListController.php
Expand Up @@ -156,6 +156,18 @@ public function hostsAction()
'host_state' => $this->translate('Hard State')
));
$this->view->hosts = $query->paginate();

$this->view->stats = $this->backend->select()->from('statusSummary', array(
'hosts_total',
'hosts_up',
'hosts_down',
'hosts_down_handled',
'hosts_down_unhandled',
'hosts_unreachable',
'hosts_unreachable_handled',
'hosts_unreachable_unhandled',
'hosts_pending',
))->getQuery()->fetchRow();
}

/**
Expand Down
@@ -0,0 +1,83 @@
<?php

use Icinga\Web\Url;

$selfUrl = 'monitoring/list/hosts';
$currentUrl = Url::fromRequest()->getRelativeUrl();

?>
<h3 class="tinystatesummary" <?= $this->compact ? ' data-base-target="col1"' : '' ?>>
<?= $this->qlink(sprintf($this->translate('%s hosts:'), $this->stats->hosts_total), $selfUrl); ?>

<?php if($this->stats->hosts_up): ?>
<span class="state ok<?= $currentUrl === Url::fromPath($selfUrl, array('host_state' => 0))->getRelativeUrl() ? ' active' : '' ?>">
<?= $this->qlink(
$this->stats->hosts_up,
$selfUrl,
array('host_state' => 0),
array('title' => $this->translate('Hosts with state UP'))
) ?>
</span>
<?php endif; ?>

<?php if($this->stats->hosts_down_unhandled): ?>
<span class="state critical<?= $currentUrl === Url::fromPath($selfUrl, array('host_state' => 1, 'host_unhandled' => 1))->getRelativeUrl() ? ' active' : '' ?>">
<?= $this->qlink(
$this->stats->hosts_down_unhandled,
$selfUrl,
array('host_state' => 1, 'host_unhandled' => 1),
array('title' => $this->translate('Unhandled hosts with state DOWN'))
) ?>
<?php endif; ?>

<?php if($this->stats->hosts_down_handled > 0): ?>
<span class="state handled critical<?= $currentUrl === Url::fromPath($selfUrl, array('host_state' => 1, 'host_unhandled' =>0))->getRelativeUrl() ? ' active' : '' ?>">
<?= $this->qlink(
$this->stats->hosts_down_handled,
$selfUrl,
array('host_state' => 1, 'host_unhandled' => 0),
array('title' => $this->translate('Handled hosts with state DOWN'))
) ?>
</span>
<?php endif; ?>

<?php if($this->stats->hosts_down): ?>
</span>
<?php endif; ?>

<?php if($this->stats->hosts_unreachable_unhandled): ?>
<span class="state unknown<?= $currentUrl === Url::fromPath($selfUrl, array('host_state' => 2, 'host_unhandled' => 1))->getRelativeUrl() ? ' active' : '' ?>">
<?= $this->qlink(
$this->stats->hosts_unreachable_unhandled,
$selfUrl,
array('host_state' => 2, 'host_unhandled' => 1),
array('title' => $this->translate('Unhandled hosts with state UNREACHABLE'))
) ?>
<?php endif; ?>

<?php if($this->stats->hosts_unreachable_handled > 0): ?>
<span class="state handled unknown<?= $currentUrl === Url::fromPath($selfUrl, array('host_state' => 2, 'host_unhandled' => 0))->getRelativeUrl() ? ' active' : '' ?>">
<?= $this->qlink(
$this->stats->hosts_unreachable_handled,
$selfUrl,
array('host_state' => 2, 'host_unhandled' => 0),
array('title' => $this->translate('Handled hosts with state UNREACHABLE'))
) ?>
</span>
<?php endif; ?>

<?php if($this->stats->hosts_unreachable): ?>
</span>
<?php endif; ?>

<?php if($this->stats->hosts_pending): ?>
<span class="state pending<?= $currentUrl === Url::fromPath($selfUrl, array('host_state' => 99))->getRelativeUrl() ? ' active' : '' ?>">
<?= $this->qlink(
$this->stats->hosts_pending,
$selfUrl,
array('host_state' => 99),
array('title' => $this->translate('Hosts with state PENDING'))
) ?>
</span>
<?php endif; ?>
</h3>
Expand Up @@ -7,6 +7,7 @@ if ($this->compact): ?>
<div class="controls">
<?= $this->tabs ?>
<div style="margin: 1em;" class="dontprint">
<?= $this->render('list/components/hostssummary.phtml') ?>
<?= $this->translate('Sort by') ?> <?= $this->sortControl->render($this) ?>
<?php if (! $this->filterEditor): ?>
<?= $this->filterPreview ?>
Expand Down
Expand Up @@ -18,6 +18,7 @@ class StatusSummaryQuery extends IdoQuery
'service_description' => 'so.name2',
),
'hoststatussummary' => array(
'hosts_total' => 'SUM(CASE WHEN object_type = \'host\' THEN 1 ELSE 0 END)',
'hosts_up' => 'SUM(CASE WHEN object_type = \'host\' AND state = 0 THEN 1 ELSE 0 END)',
'hosts_up_not_checked' => 'SUM(CASE WHEN object_type = \'host\' AND state = 0 AND is_active_checked = 0 AND is_passive_checked = 0 THEN 1 ELSE 0 END)',
'hosts_pending' => 'SUM(CASE WHEN object_type = \'host\' AND state = 99 THEN 1 ELSE 0 END)',
Expand Down

0 comments on commit 038964a

Please sign in to comment.