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

Base class providing default monitorable implementation. More...

#include <monitorable_interface.h>

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

Public Member Functions

 monitorable_component (const std::string &id)
 Constructor.
 
std::string get_monitoring_id () const override
 Get monitoring identifier.
 
bool is_monitoring_enabled () const override
 Check if monitoring is enabled.
 
common::VoidResult set_monitoring_enabled (bool enable) override
 Enable or disable monitoring.
 
common::VoidResult reset_monitoring () override
 Reset monitoring data.
 
- Public Member Functions inherited from kcenon::monitoring::monitorable_interface
virtual ~monitorable_interface ()=default
 
virtual common::Result< monitoring_dataget_monitoring_data () const =0
 Get current monitoring data from the component.
 

Protected Member Functions

void update_metric (const std::string &key, double value) const
 Helper to update a metric.
 
void update_tag (const std::string &key, const std::string &value) const
 Helper to update a tag.
 

Protected Attributes

std::string monitoring_id_
 
bool monitoring_enabled_ = true
 
monitoring_data cached_data_
 

Detailed Description

Base class providing default monitorable implementation.

This class provides a convenient base for components that want to implement the monitorable interface with common functionality. It handles ID management, enable/disable state, and cached data.

Thread Safety:
The base implementation uses mutable cached_data_ which is NOT thread-safe. Derived classes should add synchronization if needed for concurrent access.

Definition at line 343 of file monitorable_interface.h.

Constructor & Destructor Documentation

◆ monitorable_component()

kcenon::monitoring::monitorable_component::monitorable_component ( const std::string & id)
inlineexplicit

Member Function Documentation

◆ get_monitoring_id()

std::string kcenon::monitoring::monitorable_component::get_monitoring_id ( ) const
inlineoverridevirtual

Get monitoring identifier.

Returns
Component's monitoring ID

Implements kcenon::monitoring::monitorable_interface.

Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/interfaces/monitorable_interface.h.

Definition at line 362 of file monitorable_interface.h.

362 {
363 return monitoring_id_;
364 }

References monitoring_id_.

Referenced by test_monitorable_component::get_monitoring_data(), and TEST_F().

Here is the caller graph for this function:

◆ is_monitoring_enabled()

bool kcenon::monitoring::monitorable_component::is_monitoring_enabled ( ) const
inlineoverridevirtual

Check if monitoring is enabled.

Returns
true if monitoring is active

Reimplemented from kcenon::monitoring::monitorable_interface.

Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/interfaces/monitorable_interface.h.

Definition at line 370 of file monitorable_interface.h.

References monitoring_enabled_.

Referenced by test_monitorable_component::get_monitoring_data(), TEST_F(), and TEST_F().

Here is the caller graph for this function:

◆ reset_monitoring()

common::VoidResult kcenon::monitoring::monitorable_component::reset_monitoring ( )
inlineoverridevirtual

Reset monitoring data.

Returns
Result indicating success

Reimplemented from kcenon::monitoring::monitorable_interface.

Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/interfaces/monitorable_interface.h.

Definition at line 388 of file monitorable_interface.h.

388 {
391 return common::ok();
392 }
void set_component_name(const std::string &name)
Set the component name.
void clear()
Clear all metrics and tags.

References cached_data_, kcenon::monitoring::monitoring_data::clear(), monitoring_id_, and kcenon::monitoring::monitoring_data::set_component_name().

Referenced by TEST_F().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_monitoring_enabled()

common::VoidResult kcenon::monitoring::monitorable_component::set_monitoring_enabled ( bool enable)
inlineoverridevirtual

Enable or disable monitoring.

Parameters
enabletrue to enable, false to disable
Returns
Result indicating success

Reimplemented from kcenon::monitoring::monitorable_interface.

Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/interfaces/monitorable_interface.h.

Definition at line 379 of file monitorable_interface.h.

379 {
380 monitoring_enabled_ = enable;
381 return common::ok();
382 }

References monitoring_enabled_.

Referenced by TEST_F().

Here is the caller graph for this function:

◆ update_metric()

void kcenon::monitoring::monitorable_component::update_metric ( const std::string & key,
double value ) const
inlineprotected

Helper to update a metric.

Parameters
keyMetric name
valueMetric value
Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/interfaces/monitorable_interface.h.

Definition at line 400 of file monitorable_interface.h.

400 {
401 cached_data_.add_metric(key, value);
402 }
void add_metric(const std::string &key, double value)
Add a numeric metric.

References kcenon::monitoring::monitoring_data::add_metric(), and cached_data_.

Here is the call graph for this function:

◆ update_tag()

void kcenon::monitoring::monitorable_component::update_tag ( const std::string & key,
const std::string & value ) const
inlineprotected

Helper to update a tag.

Parameters
keyTag name
valueTag value
Examples
/home/runner/work/monitoring_system/monitoring_system/include/kcenon/monitoring/interfaces/monitorable_interface.h.

Definition at line 409 of file monitorable_interface.h.

409 {
410 cached_data_.add_tag(key, value);
411 }
void add_tag(const std::string &key, const std::string &value)
Add a tag (string metadata)

References kcenon::monitoring::monitoring_data::add_tag(), and cached_data_.

Here is the call graph for this function:

Member Data Documentation

◆ cached_data_

monitoring_data kcenon::monitoring::monitorable_component::cached_data_
mutableprotected

◆ monitoring_enabled_

bool kcenon::monitoring::monitorable_component::monitoring_enabled_ = true
protected

◆ monitoring_id_

std::string kcenon::monitoring::monitorable_component::monitoring_id_
protected

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