Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
Loading...
Searching...
No Matches
moving_average_trigger Class Reference
Inheritance diagram for moving_average_trigger:
Inheritance graph
Collaboration diagram for moving_average_trigger:
Collaboration graph

Public Member Functions

 moving_average_trigger (size_t window_size, double threshold)
 
bool evaluate (double value) const override
 Evaluate the trigger condition.
 
std::string type_name () const override
 Get trigger type name.
 
std::string description () const override
 Get human-readable description.
 
double current_average () const
 
void reset ()
 
- Public Member Functions inherited from kcenon::monitoring::alert_trigger
virtual ~alert_trigger ()=default
 

Private Attributes

size_t window_size_
 
double threshold_
 
std::vector< double > values_
 

Detailed Description

Examples
alert_triggers_example.cpp.

Definition at line 79 of file alert_triggers_example.cpp.

Constructor & Destructor Documentation

◆ moving_average_trigger()

moving_average_trigger::moving_average_trigger ( size_t window_size,
double threshold )
inline
Examples
alert_triggers_example.cpp.

Definition at line 81 of file alert_triggers_example.cpp.

Member Function Documentation

◆ current_average()

double moving_average_trigger::current_average ( ) const
inline
Examples
alert_triggers_example.cpp.

Definition at line 112 of file alert_triggers_example.cpp.

112 {
113 if (values_.empty()) return 0.0;
114 double sum = 0.0;
115 for (double v : values_) {
116 sum += v;
117 }
118 return sum / static_cast<double>(values_.size());
119 }

References values_.

◆ description()

std::string moving_average_trigger::description ( ) const
inlineoverridevirtual

Get human-readable description.

Returns
Description string

Implements kcenon::monitoring::alert_trigger.

Examples
alert_triggers_example.cpp.

Definition at line 108 of file alert_triggers_example.cpp.

108 {
109 return "MA(" + std::to_string(window_size_) + ") > " + std::to_string(threshold_);
110 }

References threshold_, and window_size_.

◆ evaluate()

bool moving_average_trigger::evaluate ( double value) const
inlineoverridevirtual

Evaluate the trigger condition.

Parameters
valueCurrent metric value
Returns
True if trigger condition is met

Implements kcenon::monitoring::alert_trigger.

Examples
alert_triggers_example.cpp.

Definition at line 85 of file alert_triggers_example.cpp.

85 {
86 values_.push_back(value);
87 if (values_.size() > window_size_) {
88 values_.erase(values_.begin());
89 }
90
91 if (values_.size() < window_size_) {
92 return false; // Not enough data yet
93 }
94
95 double sum = 0.0;
96 for (double v : values_) {
97 sum += v;
98 }
99 double avg = sum / static_cast<double>(values_.size());
100
101 return avg > threshold_;
102 }

References threshold_, values_, and window_size_.

◆ reset()

void moving_average_trigger::reset ( )
inline
Examples
alert_triggers_example.cpp.

Definition at line 121 of file alert_triggers_example.cpp.

121 {
122 values_.clear();
123 }

References values_.

◆ type_name()

std::string moving_average_trigger::type_name ( ) const
inlineoverridevirtual

Get trigger type name.

Returns
Type name string

Implements kcenon::monitoring::alert_trigger.

Examples
alert_triggers_example.cpp.

Definition at line 104 of file alert_triggers_example.cpp.

104 {
105 return "moving_average";
106 }

Member Data Documentation

◆ threshold_

double moving_average_trigger::threshold_
private
Examples
alert_triggers_example.cpp.

Definition at line 127 of file alert_triggers_example.cpp.

Referenced by description(), and evaluate().

◆ values_

std::vector<double> moving_average_trigger::values_
mutableprivate
Examples
alert_triggers_example.cpp.

Definition at line 128 of file alert_triggers_example.cpp.

Referenced by current_average(), evaluate(), and reset().

◆ window_size_

size_t moving_average_trigger::window_size_
private
Examples
alert_triggers_example.cpp.

Definition at line 126 of file alert_triggers_example.cpp.

Referenced by description(), and evaluate().


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