File: ApplicationState.php

package info (click to toggle)
icingaweb2 2.12.6-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 15,124 kB
  • sloc: php: 73,980; javascript: 5,009; sql: 333; xml: 75; sh: 72; makefile: 5
file content (32 lines) | stat: -rw-r--r-- 960 bytes parent folder | download | duplicates (5)
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);
        }
    }
}