MCPcopy Create free account
hub / github.com/Icinga/icinga2 / StatsFunc

Method StatsFunc

lib/icinga/cib.cpp:281–347  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

279REGISTER_STATSFUNCTION(CIB, &CIB::StatsFunc);
280
281void 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);

Callers

nothing calls this directly

Calls 3

GetPendingMethod · 0.80
loadMethod · 0.80
SetMethod · 0.45

Tested by

no test coverage detected