for (const Service::Ptr& service : ConfigType::GetObjectsByType<Service>()) {
ObjectLock olock(service);
- CheckResult::Ptr cr = service->GetLastCheckResult();
-
if (service->GetState() == ServiceOK)
ss.services_ok++;
if (service->GetState() == ServiceWarning)
if (service->GetState() == ServiceUnknown)
ss.services_unknown++;
+ CheckResult::Ptr cr = service->GetLastCheckResult();
+
if (!cr)
ss.services_pending++;
+
if (!service->IsReachable())
ss.services_unreachable++;
ss.services_in_downtime++;
if (service->IsAcknowledged())
ss.services_acknowledged++;
+
+ if (service->GetHandled())
+ ss.services_handled++;
+ if (service->GetProblem())
+ ss.services_problem++;
}
return ss;
hs.hosts_in_downtime++;
if (host->IsAcknowledged())
hs.hosts_acknowledged++;
+
+ if (host->GetHandled())
+ hs.hosts_handled++;
+ if (host->GetProblem())
+ hs.hosts_problem++;
}
return hs;
status->Set("num_services_flapping", ss.services_flapping);
status->Set("num_services_in_downtime", ss.services_in_downtime);
status->Set("num_services_acknowledged", ss.services_acknowledged);
+ status->Set("num_services_handled", ss.services_handled);
+ status->Set("num_services_problem", ss.services_problem);
double uptime = Utility::GetTime() - Application::GetStartTime();
status->Set("uptime", uptime);
status->Set("num_hosts_flapping", hs.hosts_flapping);
status->Set("num_hosts_in_downtime", hs.hosts_in_downtime);
status->Set("num_hosts_acknowledged", hs.hosts_acknowledged);
+ status->Set("num_hosts_handled", hs.hosts_handled);
+ status->Set("num_hosts_problem", hs.hosts_problem);
}
double services_flapping;
double services_in_downtime;
double services_acknowledged;
+ double services_handled;
+ double services_problem;
};
struct HostStatistics {
double hosts_flapping;
double hosts_in_downtime;
double hosts_acknowledged;
+ double hosts_handled;
+ double hosts_problem;
};
/**
} else if (macro == "num_services_acknowledged") {
*result = ss.services_acknowledged;
return true;
+ } else if (macro == "num_services_handled") {
+ *result = ss.services_handled;
+ return true;
+ } else if (macro == "num_services_problem") {
+ *result = ss.services_problem;
+ return true;
}
}
else if (macro.Contains("num_hosts")) {
} else if (macro == "num_hosts_acknowledged") {
*result = hs.hosts_acknowledged;
return true;
+ } else if (macro == "num_hosts_handled") {
+ *result = hs.hosts_handled;
+ return true;
+ } else if (macro == "num_hosts_problem") {
+ *result = hs.hosts_problem;
+ return true;
}
}
perfdata->Add(new PerfdataValue("num_services_flapping", ss.services_flapping));
perfdata->Add(new PerfdataValue("num_services_in_downtime", ss.services_in_downtime));
perfdata->Add(new PerfdataValue("num_services_acknowledged", ss.services_acknowledged));
+ perfdata->Add(new PerfdataValue("num_services_handled", ss.services_handled));
+ perfdata->Add(new PerfdataValue("num_services_problem", ss.services_problem));
double uptime = Utility::GetTime() - Application::GetStartTime();
perfdata->Add(new PerfdataValue("uptime", uptime));
perfdata->Add(new PerfdataValue("num_hosts_flapping", hs.hosts_flapping));
perfdata->Add(new PerfdataValue("num_hosts_in_downtime", hs.hosts_in_downtime));
perfdata->Add(new PerfdataValue("num_hosts_acknowledged", hs.hosts_acknowledged));
+ perfdata->Add(new PerfdataValue("num_hosts_handled", hs.hosts_handled));
+ perfdata->Add(new PerfdataValue("num_hosts_problem", hs.hosts_problem));
std::vector<Endpoint::Ptr> endpoints = ConfigType::GetObjectsByType<Endpoint>();