| 279 | REGISTER_STATSFUNCTION(CIB, &CIB::StatsFunc); |
| 280 | |
| 281 | void CIB::StatsFunc(const Dictionary::Ptr& status, [[maybe_unused]] const Array::Ptr& perfdata) { |
| 282 | double interval = Utility::GetTime() - Application::GetStartTime(); |
| 283 | |
| 284 | if (interval > 60) |
| 285 | interval = 60; |
| 286 | |
| 287 | status->Set("active_host_checks", GetActiveHostChecksStatistics(interval) / interval); |
| 288 | status->Set("passive_host_checks", GetPassiveHostChecksStatistics(interval) / interval); |
| 289 | status->Set("active_host_checks_1min", GetActiveHostChecksStatistics(60)); |
| 290 | status->Set("passive_host_checks_1min", GetPassiveHostChecksStatistics(60)); |
| 291 | status->Set("active_host_checks_5min", GetActiveHostChecksStatistics(60 * 5)); |
| 292 | status->Set("passive_host_checks_5min", GetPassiveHostChecksStatistics(60 * 5)); |
| 293 | status->Set("active_host_checks_15min", GetActiveHostChecksStatistics(60 * 15)); |
| 294 | status->Set("passive_host_checks_15min", GetPassiveHostChecksStatistics(60 * 15)); |
| 295 | |
| 296 | status->Set("active_service_checks", GetActiveServiceChecksStatistics(interval) / interval); |
| 297 | status->Set("passive_service_checks", GetPassiveServiceChecksStatistics(interval) / interval); |
| 298 | status->Set("active_service_checks_1min", GetActiveServiceChecksStatistics(60)); |
| 299 | status->Set("passive_service_checks_1min", GetPassiveServiceChecksStatistics(60)); |
| 300 | status->Set("active_service_checks_5min", GetActiveServiceChecksStatistics(60 * 5)); |
| 301 | status->Set("passive_service_checks_5min", GetPassiveServiceChecksStatistics(60 * 5)); |
| 302 | status->Set("active_service_checks_15min", GetActiveServiceChecksStatistics(60 * 15)); |
| 303 | status->Set("passive_service_checks_15min", GetPassiveServiceChecksStatistics(60 * 15)); |
| 304 | |
| 305 | // Checker related stats |
| 306 | status->Set("remote_check_queue", ClusterEvents::GetCheckRequestQueueSize()); |
| 307 | status->Set("current_pending_callbacks", Application::GetTP().GetPending()); |
| 308 | status->Set("current_concurrent_checks", Checkable::CurrentConcurrentChecks.load()); |
| 309 | |
| 310 | CheckableCheckStatistics scs = CalculateServiceCheckStats(); |
| 311 | |
| 312 | status->Set("min_latency", scs.min_latency); |
| 313 | status->Set("max_latency", scs.max_latency); |
| 314 | status->Set("avg_latency", scs.avg_latency); |
| 315 | status->Set("min_execution_time", scs.min_execution_time); |
| 316 | status->Set("max_execution_time", scs.max_execution_time); |
| 317 | status->Set("avg_execution_time", scs.avg_execution_time); |
| 318 | |
| 319 | ServiceStatistics ss = CalculateServiceStats(); |
| 320 | |
| 321 | status->Set("num_services_ok", ss.services_ok); |
| 322 | status->Set("num_services_warning", ss.services_warning); |
| 323 | status->Set("num_services_critical", ss.services_critical); |
| 324 | status->Set("num_services_unknown", ss.services_unknown); |
| 325 | status->Set("num_services_pending", ss.services_pending); |
| 326 | status->Set("num_services_unreachable", ss.services_unreachable); |
| 327 | status->Set("num_services_flapping", ss.services_flapping); |
| 328 | status->Set("num_services_in_downtime", ss.services_in_downtime); |
| 329 | status->Set("num_services_acknowledged", ss.services_acknowledged); |
| 330 | status->Set("num_services_handled", ss.services_handled); |
| 331 | status->Set("num_services_problem", ss.services_problem); |
| 332 | |
| 333 | double uptime = Application::GetUptime(); |
| 334 | status->Set("uptime", uptime); |
| 335 | |
| 336 | HostStatistics hs = CalculateHostStats(); |
| 337 | |
| 338 | status->Set("num_hosts_up", hs.hosts_up); |
nothing calls this directly
no test coverage detected