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

Trigger when no data is received for a period. More...

#include <alert_triggers.h>

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

Public Member Functions

 absent_trigger (std::chrono::milliseconds absent_duration)
 Construct an absent trigger.
 
bool evaluate (double) 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 last seen timestamp.
 
- Public Member Functions inherited from kcenon::monitoring::alert_trigger
virtual ~alert_trigger ()=default
 

Private Attributes

std::chrono::milliseconds absent_duration_
 
std::mutex mutex_
 
std::chrono::steady_clock::time_point last_seen_ {}
 

Detailed Description

Trigger when no data is received for a period.

Useful for detecting when a metric stops being reported, indicating a potential issue with the monitored service.

Definition at line 655 of file alert_triggers.h.

Constructor & Destructor Documentation

◆ absent_trigger()

kcenon::monitoring::absent_trigger::absent_trigger ( std::chrono::milliseconds absent_duration)
inlineexplicit

Construct an absent trigger.

Parameters
absent_durationDuration without data before triggering
Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/alert/alert_triggers.h.

Definition at line 661 of file alert_triggers.h.

662 : absent_duration_(absent_duration) {}
std::chrono::milliseconds absent_duration_

Member Function Documentation

◆ description()

std::string kcenon::monitoring::absent_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 685 of file alert_triggers.h.

685 {
686 return "no data for " + std::to_string(absent_duration_.count()) + "ms";
687 }

References absent_duration_.

◆ evaluate()

bool kcenon::monitoring::absent_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 664 of file alert_triggers.h.

664 {
665 auto now = std::chrono::steady_clock::now();
666
667 std::lock_guard<std::mutex> lock(mutex_);
668
669 auto previous = last_seen_;
670 last_seen_ = now;
671
672 // First evaluation - not absent yet
673 if (previous == std::chrono::steady_clock::time_point{}) {
674 return false;
675 }
676
677 // Check if the gap since previous value exceeds threshold
678 return (now - previous) > absent_duration_;
679 }
std::chrono::steady_clock::time_point last_seen_

References absent_duration_, last_seen_, and mutex_.

◆ reset()

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

Reset last seen timestamp.

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

Definition at line 692 of file alert_triggers.h.

692 {
693 std::lock_guard<std::mutex> lock(mutex_);
694 last_seen_ = std::chrono::steady_clock::time_point{};
695 }

References last_seen_, and mutex_.

◆ type_name()

std::string kcenon::monitoring::absent_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 681 of file alert_triggers.h.

681 {
682 return "absent";
683 }

Member Data Documentation

◆ absent_duration_

std::chrono::milliseconds kcenon::monitoring::absent_trigger::absent_duration_
private

◆ last_seen_

std::chrono::steady_clock::time_point kcenon::monitoring::absent_trigger::last_seen_ {}
mutableprivate

◆ mutex_

std::mutex kcenon::monitoring::absent_trigger::mutex_
mutableprivate

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