|
Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
|
#include <plugin_metric_collector.h>


Classes | |
| struct | cached_metric |
Public Member Functions | |
| plugin_metric_collector (const plugin_collector_config &config={}) | |
| ~plugin_metric_collector () override | |
| plugin_metric_collector (const plugin_metric_collector &)=delete | |
| plugin_metric_collector & | operator= (const plugin_metric_collector &)=delete |
| plugin_metric_collector (plugin_metric_collector &&)=delete | |
| plugin_metric_collector & | operator= (plugin_metric_collector &&)=delete |
| bool | register_plugin (std::unique_ptr< metric_collector_plugin > plugin) |
| bool | unregister_plugin (const std::string &plugin_name) |
| std::vector< std::string > | get_registered_plugins () const |
| bool | start () |
| void | stop () |
| bool | is_running () const |
| common::VoidResult | start_collection (const collection_config &config) override |
| Start automatic metric collection. | |
| common::VoidResult | stop_collection () override |
| Stop automatic metric collection. | |
| bool | is_collecting () const override |
| Check if collector is currently active. | |
| collection_config | get_config () const override |
| Get current collection configuration. | |
| metric_stats | get_stats () const override |
| Get collector statistics. | |
| void | reset_stats () override |
| Reset collector statistics. | |
| std::vector< metric > | get_cached_metrics (const std::optional< std::string > &plugin_name=std::nullopt) const |
| std::vector< metric_stats > | get_aggregated_metrics (size_t window_seconds=60) const |
| common::Result< std::vector< metric > > | force_collect () override |
| common::Result< std::vector< metric > > | collect_metrics () override |
| Collect metrics based on current configuration. | |
| common::VoidResult | register_observer (std::shared_ptr< interface_monitoring_observer > observer) override |
| Register an observer for events. | |
| common::VoidResult | unregister_observer (std::shared_ptr< interface_monitoring_observer > observer) override |
| Unregister an observer. | |
| std::vector< std::string > | get_metric_types () const override |
| Get the types of metrics this collector supports. | |
| common::VoidResult | update_config (const collection_config &config) override |
| Update collection configuration. | |
Public Member Functions inherited from kcenon::monitoring::interface_metric_collector | |
| virtual | ~interface_metric_collector ()=default |
Public Member Functions inherited from kcenon::monitoring::interface_observable | |
| virtual | ~interface_observable ()=default |
| 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. | |
Private Member Functions | |
| void | collection_worker () |
| void | collect_from_plugin (const std::string &name, metric_collector_plugin *plugin) |
| void | notify_observers (const metric &m) |
| void | cleanup_cache () |
| void | aggregate_metrics () |
Private Attributes | |
| std::mutex | plugins_mutex_ |
| std::unordered_map< std::string, std::unique_ptr< metric_collector_plugin > > | plugins_ |
| std::mutex | observers_mutex_ |
| std::vector< std::weak_ptr< interface_monitoring_observer > > | observers_ |
| std::mutex | cache_mutex_ |
| std::vector< cached_metric > | metric_cache_ |
| std::atomic< bool > | running_ {false} |
| std::vector< std::thread > | worker_threads_ |
| std::condition_variable | work_cv_ |
| std::mutex | work_mutex_ |
| plugin_collector_config | config_ |
| std::atomic< size_t > | total_metrics_collected_ {0} |
| std::atomic< size_t > | collection_errors_ {0} |
| std::chrono::steady_clock::time_point | start_time_ |
Main plugin-based metric collector implementation Manages multiple collector plugins and provides unified metric collection
Definition at line 117 of file plugin_metric_collector.h.
|
explicit |
|
override |
|
delete |
|
delete |
|
private |
|
private |
|
private |
|
overridevirtual |
Collect metrics based on current configuration.
Implements kcenon::monitoring::interface_metric_collector.
|
private |
|
overridevirtual |
Force immediate collection from all plugins
Implements kcenon::monitoring::interface_metric_collector.
| std::vector< metric_stats > kcenon::monitoring::plugin_metric_collector::get_aggregated_metrics | ( | size_t | window_seconds = 60 | ) | const |
Get aggregated metrics
| window_seconds | Aggregation window in seconds |
| std::vector< metric > kcenon::monitoring::plugin_metric_collector::get_cached_metrics | ( | const std::optional< std::string > & | plugin_name = std::nullopt | ) | const |
Get current metrics from cache
| plugin_name | Optional plugin name filter |
|
overridevirtual |
Get current collection configuration.
Implements kcenon::monitoring::interface_metric_collector.
|
overridevirtual |
Get the types of metrics this collector supports.
Implements kcenon::monitoring::interface_metric_collector.
| std::vector< std::string > kcenon::monitoring::plugin_metric_collector::get_registered_plugins | ( | ) | const |
Get list of registered plugin names
|
overridevirtual |
Get collector statistics.
Implements kcenon::monitoring::interface_metric_collector.
|
overridevirtual |
Check if collector is currently active.
Implements kcenon::monitoring::interface_metric_collector.
| bool kcenon::monitoring::plugin_metric_collector::is_running | ( | ) | const |
Check if collector is running
|
private |
|
delete |
|
delete |
|
overridevirtual |
Register an observer for events.
| observer | The observer to register |
Implements kcenon::monitoring::interface_observable.
| bool kcenon::monitoring::plugin_metric_collector::register_plugin | ( | std::unique_ptr< metric_collector_plugin > | plugin | ) |
Register a metric collector plugin
| plugin | Plugin instance to register |
|
overridevirtual |
Reset collector statistics.
Implements kcenon::monitoring::interface_metric_collector.
| bool kcenon::monitoring::plugin_metric_collector::start | ( | ) |
Start metric collection
|
overridevirtual |
Start automatic metric collection.
| config | Collection configuration |
Implements kcenon::monitoring::interface_metric_collector.
| void kcenon::monitoring::plugin_metric_collector::stop | ( | ) |
Stop metric collection
|
overridevirtual |
Stop automatic metric collection.
Implements kcenon::monitoring::interface_metric_collector.
|
overridevirtual |
Unregister an observer.
| observer | The observer to unregister |
Implements kcenon::monitoring::interface_observable.
| bool kcenon::monitoring::plugin_metric_collector::unregister_plugin | ( | const std::string & | plugin_name | ) |
Unregister a plugin by name
| plugin_name | Name of the plugin to unregister |
|
overridevirtual |
Update collection configuration.
| config | New configuration |
Implements kcenon::monitoring::interface_metric_collector.
|
mutableprivate |
Definition at line 217 of file plugin_metric_collector.h.
|
private |
Definition at line 231 of file plugin_metric_collector.h.
|
private |
Definition at line 227 of file plugin_metric_collector.h.
|
private |
Definition at line 218 of file plugin_metric_collector.h.
|
private |
Definition at line 209 of file plugin_metric_collector.h.
|
mutableprivate |
Definition at line 208 of file plugin_metric_collector.h.
|
private |
Definition at line 205 of file plugin_metric_collector.h.
|
mutableprivate |
Definition at line 204 of file plugin_metric_collector.h.
|
private |
Definition at line 221 of file plugin_metric_collector.h.
|
private |
Definition at line 232 of file plugin_metric_collector.h.
|
private |
Definition at line 230 of file plugin_metric_collector.h.
|
private |
Definition at line 223 of file plugin_metric_collector.h.
|
mutableprivate |
Definition at line 224 of file plugin_metric_collector.h.
|
private |
Definition at line 222 of file plugin_metric_collector.h.