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

Trigger based on change from previous value. More...

#include <alert_triggers.h>

Inheritance diagram for kcenon::monitoring::delta_trigger:
Inheritance graph
Collaboration diagram for kcenon::monitoring::delta_trigger:
Collaboration graph

Public Member Functions

 delta_trigger (double delta_threshold, bool absolute=true)
 Construct a delta trigger.
 
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.
 
void reset ()
 Reset previous value.
 
- Public Member Functions inherited from kcenon::monitoring::alert_trigger
virtual ~alert_trigger ()=default
 

Private Attributes

double delta_threshold_
 
bool absolute_
 
std::mutex mutex_
 
double previous_value_ = 0.0
 
bool has_previous_ = false
 

Detailed Description

Trigger based on change from previous value.

Fires when the difference between current and previous value exceeds a threshold.

Definition at line 710 of file alert_triggers.h.

Constructor & Destructor Documentation

◆ delta_trigger()

kcenon::monitoring::delta_trigger::delta_trigger ( double delta_threshold,
bool absolute = true )
inlineexplicit

Construct a delta trigger.

Parameters
delta_thresholdMinimum change to trigger
absoluteUse absolute difference (true) or signed (false)
Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/alert/alert_triggers.h.

Definition at line 717 of file alert_triggers.h.

Member Function Documentation

◆ description()

std::string kcenon::monitoring::delta_trigger::description ( ) const
inlineoverridevirtual

Get human-readable description.

Returns
Description string

Implements kcenon::monitoring::alert_trigger.

Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/alert/alert_triggers.h.

Definition at line 743 of file alert_triggers.h.

743 {
744 if (absolute_) {
745 return "|delta| > " + std::to_string(delta_threshold_);
746 }
747 return "delta > " + std::to_string(delta_threshold_);
748 }

References absolute_, and delta_threshold_.

◆ evaluate()

bool kcenon::monitoring::delta_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
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/alert/alert_triggers.h.

Definition at line 721 of file alert_triggers.h.

721 {
722 std::lock_guard<std::mutex> lock(mutex_);
723
724 if (!has_previous_) {
725 previous_value_ = value;
726 has_previous_ = true;
727 return false;
728 }
729
730 double delta = value - previous_value_;
731 previous_value_ = value;
732
733 if (absolute_) {
734 return std::abs(delta) > delta_threshold_;
735 }
736 return delta > delta_threshold_;
737 }

References absolute_, delta_threshold_, has_previous_, mutex_, and previous_value_.

◆ reset()

void kcenon::monitoring::delta_trigger::reset ( )
inline

Reset previous value.

Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/alert/alert_triggers.h.

Definition at line 753 of file alert_triggers.h.

753 {
754 std::lock_guard<std::mutex> lock(mutex_);
755 has_previous_ = false;
756 }

References has_previous_, and mutex_.

◆ type_name()

std::string kcenon::monitoring::delta_trigger::type_name ( ) const
inlineoverridevirtual

Get trigger type name.

Returns
Type name string

Implements kcenon::monitoring::alert_trigger.

Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/alert/alert_triggers.h.

Definition at line 739 of file alert_triggers.h.

739 {
740 return "delta";
741 }

Member Data Documentation

◆ absolute_

bool kcenon::monitoring::delta_trigger::absolute_
private

◆ delta_threshold_

double kcenon::monitoring::delta_trigger::delta_threshold_
private

◆ has_previous_

bool kcenon::monitoring::delta_trigger::has_previous_ = false
mutableprivate

◆ mutex_

std::mutex kcenon::monitoring::delta_trigger::mutex_
mutableprivate

◆ previous_value_

double kcenon::monitoring::delta_trigger::previous_value_ = 0.0
mutableprivate

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