|
Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
|
Unified process-level metrics collector. More...
#include <process_metrics_collector.h>


Public Member Functions | |
| process_metrics_collector () | |
| process_metrics_collector (process_metrics_config config) | |
| ~process_metrics_collector () override=default | |
| process_metrics_collector (const process_metrics_collector &)=delete | |
| process_metrics_collector & | operator= (const process_metrics_collector &)=delete |
| process_metrics_collector (process_metrics_collector &&)=delete | |
| process_metrics_collector & | operator= (process_metrics_collector &&)=delete |
| auto | name () const -> std::string_view override |
| Get the unique name of this plugin. | |
| auto | collect () -> std::vector< metric > override |
| Collect current metrics from this plugin. | |
| auto | interval () const -> std::chrono::milliseconds override |
| Get the collection interval for this plugin. | |
| auto | is_available () const -> bool override |
| Check if this plugin is available on the current system. | |
| bool | is_healthy () const |
| auto | get_metric_types () const -> std::vector< std::string > override |
| Get supported metric types. | |
| bool | initialize (const config_map &config) override |
| Initialize plugin with configuration. | |
| auto | get_statistics () const -> stats_map override |
| process_metrics | get_last_metrics () const |
| fd_metrics | get_last_fd_metrics () const |
| inode_metrics | get_last_inode_metrics () const |
| context_switch_metrics | get_last_context_switch_metrics () const |
| bool | is_fd_monitoring_available () const |
| bool | is_inode_monitoring_available () const |
| bool | is_context_switch_monitoring_available () const |
Public Member Functions inherited from kcenon::monitoring::collector_plugin | |
| virtual | ~collector_plugin ()=default |
| virtual auto | get_metadata () const -> plugin_metadata |
| Get plugin metadata. | |
| virtual void | shutdown () |
| Shutdown plugin and release resources. | |
Private Member Functions | |
| void | collect_fd_metrics (std::vector< metric > &metrics) |
| void | collect_inode_metrics (std::vector< metric > &metrics) |
| void | collect_context_switch_metrics (std::vector< metric > &metrics) |
| void | add_fd_metrics (std::vector< metric > &metrics, const fd_metrics &fd_data) |
| void | add_inode_metrics (std::vector< metric > &metrics, const inode_metrics &inode_data) |
| void | add_context_switch_metrics (std::vector< metric > &metrics, const context_switch_metrics &cs_data) |
Private Attributes | |
| std::unique_ptr< fd_info_collector > | fd_collector_ |
| std::unique_ptr< inode_info_collector > | inode_collector_ |
| std::unique_ptr< context_switch_info_collector > | cs_collector_ |
| process_metrics_config | config_ |
| process_metrics | last_metrics_ |
| std::chrono::milliseconds | collection_interval_ {std::chrono::seconds(5)} |
| std::mutex | metrics_mutex_ |
| std::atomic< uint64_t > | collection_count_ {0} |
| std::atomic< uint64_t > | collection_errors_ {0} |
Unified process-level metrics collector.
Consolidates file descriptor, inode, and context switch monitoring into a single collector for comprehensive process health monitoring.
Configuration options:
Definition at line 240 of file process_metrics_collector.h.
| kcenon::monitoring::process_metrics_collector::process_metrics_collector | ( | ) |
|
explicit |
|
overridedefault |
|
delete |
|
delete |
|
private |
|
private |
|
private |
|
overridevirtual |
Collect current metrics from this plugin.
This method is called periodically based on interval(). Implementations should:
Implements kcenon::monitoring::collector_plugin.
Referenced by main().

|
private |
|
private |
|
private |
| context_switch_metrics kcenon::monitoring::process_metrics_collector::get_last_context_switch_metrics | ( | ) | const |
| fd_metrics kcenon::monitoring::process_metrics_collector::get_last_fd_metrics | ( | ) | const |
| inode_metrics kcenon::monitoring::process_metrics_collector::get_last_inode_metrics | ( | ) | const |
| process_metrics kcenon::monitoring::process_metrics_collector::get_last_metrics | ( | ) | const |
|
overridevirtual |
Get supported metric types.
Used for filtering and documentation.
Implements kcenon::monitoring::collector_plugin.
|
overridevirtual |
Get collector statistics
Reimplemented from kcenon::monitoring::collector_plugin.
Referenced by main().

|
overridevirtual |
Initialize plugin with configuration.
| config | Configuration key-value pairs |
Called once after plugin registration. Optional: Default implementation always succeeds.
Reimplemented from kcenon::monitoring::collector_plugin.
Referenced by main().

|
inlineoverridevirtual |
Get the collection interval for this plugin.
The registry uses this value to schedule collection tasks. Typical values:
Implements kcenon::monitoring::collector_plugin.
Definition at line 254 of file process_metrics_collector.h.
References collection_interval_.
|
overridevirtual |
Check if this plugin is available on the current system.
Availability checks may include:
The registry may skip unavailable plugins during registration.
Implements kcenon::monitoring::collector_plugin.
Referenced by main().

| bool kcenon::monitoring::process_metrics_collector::is_context_switch_monitoring_available | ( | ) | const |
| bool kcenon::monitoring::process_metrics_collector::is_fd_monitoring_available | ( | ) | const |
| bool kcenon::monitoring::process_metrics_collector::is_healthy | ( | ) | const |
Check if collector is in a healthy state
| bool kcenon::monitoring::process_metrics_collector::is_inode_monitoring_available | ( | ) | const |
|
inlineoverridevirtual |
Get the unique name of this plugin.
The name is used for:
Implements kcenon::monitoring::collector_plugin.
Definition at line 252 of file process_metrics_collector.h.
Referenced by main().

|
delete |
|
delete |
|
mutableprivate |
Definition at line 294 of file process_metrics_collector.h.
|
mutableprivate |
Definition at line 295 of file process_metrics_collector.h.
|
private |
Definition at line 290 of file process_metrics_collector.h.
Referenced by interval().
|
private |
Definition at line 288 of file process_metrics_collector.h.
|
private |
Definition at line 286 of file process_metrics_collector.h.
|
private |
Definition at line 284 of file process_metrics_collector.h.
|
private |
Definition at line 285 of file process_metrics_collector.h.
|
private |
Definition at line 289 of file process_metrics_collector.h.
|
mutableprivate |
Definition at line 291 of file process_metrics_collector.h.