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

Pure virtual interface for metric collectors. More...

#include <metric_collector_interface.h>

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

Public Member Functions

virtual ~interface_metric_collector ()=default
 
virtual common::Result< std::vector< metric > > collect_metrics ()=0
 Collect metrics based on current configuration.
 
virtual common::VoidResult start_collection (const collection_config &config)=0
 Start automatic metric collection.
 
virtual common::VoidResult stop_collection ()=0
 Stop automatic metric collection.
 
virtual bool is_collecting () const =0
 Check if collector is currently active.
 
virtual std::vector< std::string > get_metric_types () const =0
 Get the types of metrics this collector supports.
 
virtual collection_config get_config () const =0
 Get current collection configuration.
 
virtual common::VoidResult update_config (const collection_config &config)=0
 Update collection configuration.
 
virtual common::Result< std::vector< metric > > force_collect ()=0
 Force immediate metric collection.
 
virtual metric_stats get_stats () const =0
 Get collector statistics.
 
virtual void reset_stats ()=0
 Reset collector statistics.
 
- Public Member Functions inherited from kcenon::monitoring::interface_observable
virtual ~interface_observable ()=default
 
virtual common::VoidResult register_observer (std::shared_ptr< interface_monitoring_observer > observer)=0
 Register an observer for events.
 
virtual common::VoidResult unregister_observer (std::shared_ptr< interface_monitoring_observer > observer)=0
 Unregister an observer.
 
virtual void notify_metric (const metric_event &event)=0
 Notify all observers of a metric event.
 
virtual void notify_event (const system_event &event)=0
 Notify all observers of a system event.
 
virtual void notify_state_change (const state_change_event &event)=0
 Notify all observers of a state change.
 

Detailed Description

Pure virtual interface for metric collectors.

Components implementing this interface can collect various types of metrics and publish them to registered observers. The interface provides both manual and automatic collection modes with configurable filtering and batching options.

Thread Safety:
Implementations MUST be thread-safe. All public methods can be called from multiple threads simultaneously. The observer notification mechanism should handle concurrent access appropriately.

Definition at line 251 of file metric_collector_interface.h.

Constructor & Destructor Documentation

◆ ~interface_metric_collector()

virtual kcenon::monitoring::interface_metric_collector::~interface_metric_collector ( )
virtualdefault

Member Function Documentation

◆ collect_metrics()

virtual common::Result< std::vector< metric > > kcenon::monitoring::interface_metric_collector::collect_metrics ( )
pure virtual

Collect metrics based on current configuration.

Returns
Result containing collected metrics or error

Implemented in kcenon::monitoring::plugin_metric_collector, and test_collector.

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

◆ force_collect()

virtual common::Result< std::vector< metric > > kcenon::monitoring::interface_metric_collector::force_collect ( )
pure virtual

Force immediate metric collection.

Returns
Result containing collected metrics or error

Implemented in kcenon::monitoring::plugin_metric_collector, and test_collector.

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

◆ get_config()

virtual collection_config kcenon::monitoring::interface_metric_collector::get_config ( ) const
pure virtual

◆ get_metric_types()

virtual std::vector< std::string > kcenon::monitoring::interface_metric_collector::get_metric_types ( ) const
pure virtual

Get the types of metrics this collector supports.

Returns
Vector of supported metric type names

Implemented in kcenon::monitoring::plugin_metric_collector, and test_collector.

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

◆ get_stats()

virtual metric_stats kcenon::monitoring::interface_metric_collector::get_stats ( ) const
pure virtual

◆ is_collecting()

virtual bool kcenon::monitoring::interface_metric_collector::is_collecting ( ) const
pure virtual

◆ reset_stats()

virtual void kcenon::monitoring::interface_metric_collector::reset_stats ( )
pure virtual

◆ start_collection()

virtual common::VoidResult kcenon::monitoring::interface_metric_collector::start_collection ( const collection_config & config)
pure virtual

Start automatic metric collection.

Parameters
configCollection configuration
Returns
Result indicating success or failure

Implemented in kcenon::monitoring::plugin_metric_collector, and test_collector.

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

◆ stop_collection()

virtual common::VoidResult kcenon::monitoring::interface_metric_collector::stop_collection ( )
pure virtual

◆ update_config()

virtual common::VoidResult kcenon::monitoring::interface_metric_collector::update_config ( const collection_config & config)
pure virtual

Update collection configuration.

Parameters
configNew configuration
Returns
Result indicating success or failure

Implemented in kcenon::monitoring::plugin_metric_collector, and test_collector.

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

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