Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
Loading...
Searching...
No Matches
kcenon::monitoring::adaptive_config Struct Reference

Adaptive configuration parameters. More...

#include <adaptive_monitor.h>

Collaboration diagram for kcenon::monitoring::adaptive_config:
Collaboration graph

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}
 

Detailed Description

Adaptive configuration parameters.

Definition at line 60 of file adaptive_monitor.h.

Member Function Documentation

◆ get_interval_for_load()

std::chrono::milliseconds kcenon::monitoring::adaptive_config::get_interval_for_load ( load_level level) const
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().

Here is the caller graph for this function:

◆ get_sampling_rate_for_load()

double kcenon::monitoring::adaptive_config::get_sampling_rate_for_load ( load_level level) const
inline

Member Data Documentation

◆ adaptation_interval

std::chrono::seconds kcenon::monitoring::adaptive_config::adaptation_interval {10}

Definition at line 87 of file adaptive_monitor.h.

87{10};

Referenced by TEST_F().

◆ cooldown_period

std::chrono::milliseconds kcenon::monitoring::adaptive_config::cooldown_period {1000}

Definition at line 92 of file adaptive_monitor.h.

92{1000}; // Minimum time between level changes

Referenced by kcenon::monitoring::adaptive_collector::adapt(), TEST_F(), TEST_F(), and TEST_F().

◆ critical_interval

std::chrono::milliseconds kcenon::monitoring::adaptive_config::critical_interval {5000}

Definition at line 76 of file adaptive_monitor.h.

76{5000};

Referenced by get_interval_for_load().

◆ critical_sampling_rate

double kcenon::monitoring::adaptive_config::critical_sampling_rate {0.1}

Definition at line 83 of file adaptive_monitor.h.

83{0.1};

Referenced by get_sampling_rate_for_load(), and TEST_F().

◆ enable_cooldown

bool kcenon::monitoring::adaptive_config::enable_cooldown {true}

◆ enable_hysteresis

bool kcenon::monitoring::adaptive_config::enable_hysteresis {true}

◆ high_interval

std::chrono::milliseconds kcenon::monitoring::adaptive_config::high_interval {1000}

Definition at line 75 of file adaptive_monitor.h.

75{1000};

Referenced by get_interval_for_load().

◆ high_sampling_rate

double kcenon::monitoring::adaptive_config::high_sampling_rate {0.2}

Definition at line 82 of file adaptive_monitor.h.

82{0.2};

Referenced by get_sampling_rate_for_load(), and TEST_F().

◆ high_threshold

◆ hysteresis_margin

double kcenon::monitoring::adaptive_config::hysteresis_margin {5.0}

Definition at line 91 of file adaptive_monitor.h.

91{5.0}; // Percentage margin to prevent oscillation

Referenced by kcenon::monitoring::adaptive_collector::calculate_load_level_with_hysteresis(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().

◆ idle_interval

std::chrono::milliseconds kcenon::monitoring::adaptive_config::idle_interval {100}

Definition at line 72 of file adaptive_monitor.h.

72{100};

Referenced by get_interval_for_load().

◆ idle_sampling_rate

double kcenon::monitoring::adaptive_config::idle_sampling_rate {1.0}

Definition at line 79 of file adaptive_monitor.h.

79{1.0};

Referenced by get_sampling_rate_for_load(), TEST_F(), and TEST_F().

◆ idle_threshold

double kcenon::monitoring::adaptive_config::idle_threshold {20.0}

◆ low_interval

std::chrono::milliseconds kcenon::monitoring::adaptive_config::low_interval {250}

Definition at line 73 of file adaptive_monitor.h.

73{250};

Referenced by get_interval_for_load().

◆ low_sampling_rate

double kcenon::monitoring::adaptive_config::low_sampling_rate {0.8}

Definition at line 80 of file adaptive_monitor.h.

80{0.8};

Referenced by get_sampling_rate_for_load().

◆ low_threshold

double kcenon::monitoring::adaptive_config::low_threshold {40.0}

◆ memory_critical_threshold

double kcenon::monitoring::adaptive_config::memory_critical_threshold {85.0}

◆ memory_warning_threshold

double kcenon::monitoring::adaptive_config::memory_warning_threshold {70.0}

◆ moderate_interval

std::chrono::milliseconds kcenon::monitoring::adaptive_config::moderate_interval {500}

Definition at line 74 of file adaptive_monitor.h.

74{500};

Referenced by get_interval_for_load().

◆ moderate_sampling_rate

double kcenon::monitoring::adaptive_config::moderate_sampling_rate {0.5}

Definition at line 81 of file adaptive_monitor.h.

81{0.5};

Referenced by get_sampling_rate_for_load().

◆ moderate_threshold

◆ smoothing_factor

double kcenon::monitoring::adaptive_config::smoothing_factor {0.7}

Definition at line 88 of file adaptive_monitor.h.

88{0.7}; // Exponential smoothing for load average

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(), and TEST_F().

◆ strategy


The documentation for this struct was generated from the following file: