summaryrefslogtreecommitdiffstats
path: root/modules/monitoring/library/Monitoring/ProvidedHook/ApplicationState.php
blob: 4e2e61c9349d899c3ecb2606fccda21086e6b6d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
/* Icinga Web 2 | (c) 2018 Icinga Development Team | GPLv2+ */

namespace Icinga\Module\Monitoring\ProvidedHook;

use Icinga\Application\Hook\ApplicationStateHook;
use Icinga\Module\Monitoring\Backend\MonitoringBackend;

class ApplicationState extends ApplicationStateHook
{
    public function collectMessages()
    {
        $backend = MonitoringBackend::instance();

        $programStatus = $backend
            ->select()
            ->from(
                'programstatus',
                ['is_currently_running', 'status_update_time']
            )
            ->fetchRow();

        if ($programStatus === false || ! (bool) $programStatus->is_currently_running) {
            $message = sprintf(
                mt('monitoring', "Monitoring backend '%s' is not running."),
                $backend->getName()
            );

            $this->addError('monitoring/backend-down', $programStatus->status_update_time, $message);
        }
    }
}