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

Public Member Functions

 test_monitorable_component (const std::string &id)
 
kcenon::common::Result< monitoring_dataget_monitoring_data () const override
 Get current monitoring data from the component.
 
void perform_operation ()
 
void set_cpu_usage (double usage)
 
void set_memory_usage (double usage)
 
int get_operation_count () const
 
- Public Member Functions inherited from kcenon::monitoring::monitorable_component
 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
 

Private Attributes

std::atomic< int > operation_count_ {0}
 
std::atomic< double > cpu_usage_ {0.0}
 
std::atomic< double > memory_usage_ {0.0}
 

Additional Inherited Members

- Protected Member Functions inherited from kcenon::monitoring::monitorable_component
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 inherited from kcenon::monitoring::monitorable_component
std::string monitoring_id_
 
bool monitoring_enabled_ = true
 
monitoring_data cached_data_
 

Detailed Description

Test implementation of monitorable_interface

Definition at line 21 of file test_monitorable_interface.cpp.

Constructor & Destructor Documentation

◆ test_monitorable_component()

test_monitorable_component::test_monitorable_component ( const std::string & id)
inlineexplicit

Definition at line 28 of file test_monitorable_interface.cpp.

monitorable_component(const std::string &id)
Constructor.

Member Function Documentation

◆ get_monitoring_data()

kcenon::common::Result< monitoring_data > test_monitorable_component::get_monitoring_data ( ) const
inlineoverridevirtual

Get current monitoring data from the component.

Returns
Result containing monitoring data or error

Implements kcenon::monitoring::monitorable_interface.

Definition at line 31 of file test_monitorable_interface.cpp.

31 {
32 if (!is_monitoring_enabled()) {
33 return kcenon::common::make_error<monitoring_data>(
34 static_cast<int>(monitoring_error_code::monitoring_disabled),
35 "Monitoring is disabled for this component"
36 );
37 }
38
40
41 // Add metrics
42 data.add_metric("operation_count", operation_count_.load());
43 data.add_metric("cpu_usage", cpu_usage_.load());
44 data.add_metric("memory_usage", memory_usage_.load());
45
46 // Add tags
47 data.add_tag("component_type", "test");
48 data.add_tag("version", "1.0.0");
49 data.add_tag("status", "running");
50
51 return kcenon::common::ok(std::move(data));
52 }
bool is_monitoring_enabled() const override
Check if monitoring is enabled.
std::string get_monitoring_id() const override
Get monitoring identifier.
Container for monitoring metrics from a component.

References kcenon::monitoring::monitoring_data::add_metric(), kcenon::monitoring::monitoring_data::add_tag(), cpu_usage_, kcenon::monitoring::monitorable_component::get_monitoring_id(), kcenon::monitoring::monitorable_component::is_monitoring_enabled(), memory_usage_, and operation_count_.

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

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

◆ get_operation_count()

int test_monitorable_component::get_operation_count ( ) const
inline

Definition at line 67 of file test_monitorable_interface.cpp.

67 {
68 return operation_count_.load();
69 }

References operation_count_.

Referenced by TEST_F(), and TEST_F().

Here is the caller graph for this function:

◆ perform_operation()

void test_monitorable_component::perform_operation ( )
inline

Definition at line 55 of file test_monitorable_interface.cpp.

55 {
57 }

References operation_count_.

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

Here is the caller graph for this function:

◆ set_cpu_usage()

void test_monitorable_component::set_cpu_usage ( double usage)
inline

Definition at line 59 of file test_monitorable_interface.cpp.

59 {
60 cpu_usage_ = usage;
61 }

References cpu_usage_.

Referenced by TEST_F().

Here is the caller graph for this function:

◆ set_memory_usage()

void test_monitorable_component::set_memory_usage ( double usage)
inline

Definition at line 63 of file test_monitorable_interface.cpp.

63 {
64 memory_usage_ = usage;
65 }

References memory_usage_.

Referenced by TEST_F().

Here is the caller graph for this function:

Member Data Documentation

◆ cpu_usage_

std::atomic<double> test_monitorable_component::cpu_usage_ {0.0}
private

Definition at line 24 of file test_monitorable_interface.cpp.

24{0.0};

Referenced by get_monitoring_data(), and set_cpu_usage().

◆ memory_usage_

std::atomic<double> test_monitorable_component::memory_usage_ {0.0}
private

Definition at line 25 of file test_monitorable_interface.cpp.

25{0.0};

Referenced by get_monitoring_data(), and set_memory_usage().

◆ operation_count_

std::atomic<int> test_monitorable_component::operation_count_ {0}
private

Definition at line 23 of file test_monitorable_interface.cpp.

23{0};

Referenced by get_monitoring_data(), get_operation_count(), and perform_operation().


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