]> granicus.if.org Git - icinga2/blob - lib/icinga/checkresult.cpp
Correct current_concurrent_checks to actually running checks
[icinga2] / lib / icinga / checkresult.cpp
1 /* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
2
3 #include "icinga/checkresult.hpp"
4 #include "icinga/checkresult-ti.cpp"
5 #include "base/scriptglobal.hpp"
6
7 using namespace icinga;
8
9 REGISTER_TYPE(CheckResult);
10
11 INITIALIZE_ONCE([]() {
12         ScriptGlobal::Set("Icinga.ServiceOK", ServiceOK, true);
13         ScriptGlobal::Set("Icinga.ServiceWarning", ServiceWarning, true);
14         ScriptGlobal::Set("Icinga.ServiceCritical", ServiceCritical, true);
15         ScriptGlobal::Set("Icinga.ServiceUnknown", ServiceUnknown, true);
16
17         ScriptGlobal::Set("Icinga.HostUp", HostUp, true);
18         ScriptGlobal::Set("Icinga.HostDown", HostDown, true);
19 })
20
21 double CheckResult::CalculateExecutionTime() const
22 {
23         return GetExecutionEnd() - GetExecutionStart();
24 }
25
26 double CheckResult::CalculateLatency() const
27 {
28         double latency = (GetScheduleEnd() - GetScheduleStart()) - CalculateExecutionTime();
29
30         if (latency < 0)
31                 latency = 0;
32
33         return latency;
34 }