|
Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
|
Adaptive configuration parameters. More...
#include <adaptive_monitor.h>

Public Member Functions | |
| std::chrono::milliseconds | get_interval_for_load (load_level level) const |
| Get collection interval for load level. | |
| double | get_sampling_rate_for_load (load_level level) const |
| Get sampling rate for load level. | |
Public Attributes | |
| double | idle_threshold {20.0} |
| double | low_threshold {40.0} |
| double | moderate_threshold {60.0} |
| double | high_threshold {80.0} |
| double | memory_warning_threshold {70.0} |
| double | memory_critical_threshold {85.0} |
| std::chrono::milliseconds | idle_interval {100} |
| std::chrono::milliseconds | low_interval {250} |
| std::chrono::milliseconds | moderate_interval {500} |
| std::chrono::milliseconds | high_interval {1000} |
| std::chrono::milliseconds | critical_interval {5000} |
| double | idle_sampling_rate {1.0} |
| double | low_sampling_rate {0.8} |
| double | moderate_sampling_rate {0.5} |
| double | high_sampling_rate {0.2} |
| double | critical_sampling_rate {0.1} |
| adaptation_strategy | strategy {adaptation_strategy::balanced} |
| std::chrono::seconds | adaptation_interval {10} |
| double | smoothing_factor {0.7} |
| double | hysteresis_margin {5.0} |
| std::chrono::milliseconds | cooldown_period {1000} |
| bool | enable_hysteresis {true} |
| bool | enable_cooldown {true} |
Adaptive configuration parameters.
Definition at line 60 of file adaptive_monitor.h.
|
inline |
Get collection interval for load level.
Definition at line 99 of file adaptive_monitor.h.
References kcenon::monitoring::critical, critical_interval, kcenon::monitoring::high, high_interval, kcenon::monitoring::idle, idle_interval, kcenon::monitoring::low, low_interval, kcenon::monitoring::moderate, and moderate_interval.
Referenced by kcenon::monitoring::adaptive_collector::adapt(), and TEST_F().

|
inline |
Get sampling rate for load level.
Definition at line 113 of file adaptive_monitor.h.
References kcenon::monitoring::critical, critical_sampling_rate, kcenon::monitoring::high, high_sampling_rate, kcenon::monitoring::idle, idle_sampling_rate, kcenon::monitoring::low, low_sampling_rate, kcenon::monitoring::moderate, and moderate_sampling_rate.
Referenced by kcenon::monitoring::adaptive_collector::adapt(), and TEST_F().

| std::chrono::seconds kcenon::monitoring::adaptive_config::adaptation_interval {10} |
| std::chrono::milliseconds kcenon::monitoring::adaptive_config::cooldown_period {1000} |
Definition at line 92 of file adaptive_monitor.h.
Referenced by kcenon::monitoring::adaptive_collector::adapt(), TEST_F(), TEST_F(), and TEST_F().
| std::chrono::milliseconds kcenon::monitoring::adaptive_config::critical_interval {5000} |
| double kcenon::monitoring::adaptive_config::critical_sampling_rate {0.1} |
Definition at line 83 of file adaptive_monitor.h.
Referenced by get_sampling_rate_for_load(), and TEST_F().
| bool kcenon::monitoring::adaptive_config::enable_cooldown {true} |
Definition at line 94 of file adaptive_monitor.h.
Referenced by kcenon::monitoring::adaptive_collector::adapt(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().
| bool kcenon::monitoring::adaptive_config::enable_hysteresis {true} |
Definition at line 93 of file adaptive_monitor.h.
Referenced by kcenon::monitoring::adaptive_collector::calculate_load_level_with_hysteresis(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().
| std::chrono::milliseconds kcenon::monitoring::adaptive_config::high_interval {1000} |
| double kcenon::monitoring::adaptive_config::high_sampling_rate {0.2} |
Definition at line 82 of file adaptive_monitor.h.
Referenced by get_sampling_rate_for_load(), and TEST_F().
| double kcenon::monitoring::adaptive_config::high_threshold {80.0} |
Definition at line 65 of file adaptive_monitor.h.
Referenced by kcenon::monitoring::adaptive_collector::calculate_load_level_with_config(), kcenon::monitoring::adaptive_collector::calculate_load_level_with_hysteresis(), kcenon::monitoring::adaptive_collector::get_threshold_for_level(), TEST_F(), and TEST_F().
| double kcenon::monitoring::adaptive_config::hysteresis_margin {5.0} |
Definition at line 91 of file adaptive_monitor.h.
Referenced by kcenon::monitoring::adaptive_collector::calculate_load_level_with_hysteresis(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().
| std::chrono::milliseconds kcenon::monitoring::adaptive_config::idle_interval {100} |
| double kcenon::monitoring::adaptive_config::idle_sampling_rate {1.0} |
Definition at line 79 of file adaptive_monitor.h.
Referenced by get_sampling_rate_for_load(), TEST_F(), and TEST_F().
| double kcenon::monitoring::adaptive_config::idle_threshold {20.0} |
Definition at line 62 of file adaptive_monitor.h.
Referenced by kcenon::monitoring::adaptive_collector::calculate_load_level_with_config(), kcenon::monitoring::adaptive_collector::get_threshold_for_level(), and TEST_F().
| std::chrono::milliseconds kcenon::monitoring::adaptive_config::low_interval {250} |
| double kcenon::monitoring::adaptive_config::low_sampling_rate {0.8} |
Definition at line 80 of file adaptive_monitor.h.
Referenced by get_sampling_rate_for_load().
| double kcenon::monitoring::adaptive_config::low_threshold {40.0} |
Definition at line 63 of file adaptive_monitor.h.
Referenced by kcenon::monitoring::adaptive_collector::calculate_load_level_with_config(), kcenon::monitoring::adaptive_collector::get_threshold_for_level(), and TEST_F().
| double kcenon::monitoring::adaptive_config::memory_critical_threshold {85.0} |
Definition at line 69 of file adaptive_monitor.h.
Referenced by kcenon::monitoring::adaptive_collector::calculate_load_level_with_config(), kcenon::monitoring::adaptive_collector::calculate_load_level_with_hysteresis(), TEST_F(), and TEST_F().
| double kcenon::monitoring::adaptive_config::memory_warning_threshold {70.0} |
Definition at line 68 of file adaptive_monitor.h.
Referenced by kcenon::monitoring::adaptive_collector::calculate_load_level_with_config(), kcenon::monitoring::adaptive_collector::calculate_load_level_with_hysteresis(), TEST_F(), and TEST_F().
| std::chrono::milliseconds kcenon::monitoring::adaptive_config::moderate_interval {500} |
| double kcenon::monitoring::adaptive_config::moderate_sampling_rate {0.5} |
Definition at line 81 of file adaptive_monitor.h.
Referenced by get_sampling_rate_for_load().
| double kcenon::monitoring::adaptive_config::moderate_threshold {60.0} |
Definition at line 64 of file adaptive_monitor.h.
Referenced by kcenon::monitoring::adaptive_collector::calculate_load_level_with_config(), kcenon::monitoring::adaptive_collector::calculate_load_level_with_hysteresis(), kcenon::monitoring::adaptive_collector::get_threshold_for_level(), and TEST_F().
| double kcenon::monitoring::adaptive_config::smoothing_factor {0.7} |
| adaptation_strategy kcenon::monitoring::adaptive_config::strategy {adaptation_strategy::balanced} |
Definition at line 86 of file adaptive_monitor.h.
Referenced by kcenon::monitoring::adaptive_collector::calculate_load_level_with_config(), kcenon::monitoring::adaptive_collector::calculate_load_level_with_hysteresis(), TEST_F(), TEST_F(), and TEST_F().