|
Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
|
Unified platform-agnostic metrics collector. More...
#include <platform_metrics_collector.h>


Public Member Functions | |
| platform_metrics_collector () | |
| platform_metrics_collector (platform_metrics_config config) | |
| ~platform_metrics_collector () override=default | |
| platform_metrics_collector (const platform_metrics_collector &)=delete | |
| platform_metrics_collector & | operator= (const platform_metrics_collector &)=delete |
| platform_metrics_collector (platform_metrics_collector &&)=delete | |
| platform_metrics_collector & | operator= (platform_metrics_collector &&)=delete |
| auto | name () const -> std::string_view override |
| auto | collect () -> std::vector< metric > override |
| auto | interval () const -> std::chrono::milliseconds override |
| auto | is_available () const -> bool override |
| bool | is_healthy () const |
| auto | get_metric_types () const -> std::vector< std::string > override |
| bool | initialize (const config_map &config) override |
| auto | get_statistics () const -> stats_map override |
| platform_metrics | get_last_metrics () const |
| platform_info | get_platform_info () const |
| std::string | get_platform_name () const |
| bool | is_platform_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_platform_info_metrics (std::vector< metric > &metrics) |
| void | collect_uptime_metrics (std::vector< metric > &metrics) |
| void | collect_context_switch_metrics (std::vector< metric > &metrics) |
| void | collect_tcp_metrics (std::vector< metric > &metrics) |
| void | collect_socket_metrics (std::vector< metric > &metrics) |
| void | collect_interrupt_metrics (std::vector< metric > &metrics) |
Private Attributes | |
| std::unique_ptr< platform_info_collector > | collector_ |
| platform_metrics_config | config_ |
| platform_metrics | last_metrics_ |
| platform_info | cached_platform_info_ |
| bool | platform_info_cached_ {false} |
| std::chrono::milliseconds | collection_interval_ {std::chrono::seconds(10)} |
| std::mutex | metrics_mutex_ |
Unified platform-agnostic metrics collector.
Collects platform information and platform-specific metrics using the Strategy pattern. The metrics_provider interface abstracts platform differences, providing a unified API across Linux, macOS, and Windows.
This collector provides:
Configuration options:
Implements collector_plugin interface for plugin-based architecture.
Definition at line 250 of file platform_metrics_collector.h.
| kcenon::monitoring::platform_metrics_collector::platform_metrics_collector | ( | ) |
|
explicit |
|
overridedefault |
|
delete |
|
delete |
|
overridevirtual |
Collect platform metrics
Implements kcenon::monitoring::collector_plugin.
Referenced by main().

|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
| platform_metrics kcenon::monitoring::platform_metrics_collector::get_last_metrics | ( | ) | const |
Get last collected platform metrics
Referenced by main().

|
overridevirtual |
Get supported metric types
Implements kcenon::monitoring::collector_plugin.
| platform_info kcenon::monitoring::platform_metrics_collector::get_platform_info | ( | ) | const |
Get platform information
Referenced by demonstrate_platform_features(), and main().

| std::string kcenon::monitoring::platform_metrics_collector::get_platform_name | ( | ) | const |
Get platform name
|
overridevirtual |
Get collector statistics
Reimplemented from kcenon::monitoring::collector_plugin.
Referenced by main().

|
overridevirtual |
Initialize collector with configuration
| config | Configuration map |
Reimplemented from kcenon::monitoring::collector_plugin.
Referenced by main().

|
inlineoverridevirtual |
Get the collection interval for this plugin
Implements kcenon::monitoring::collector_plugin.
Definition at line 278 of file platform_metrics_collector.h.
References collection_interval_.
|
overridevirtual |
Check if platform monitoring is available
Implements kcenon::monitoring::collector_plugin.
Referenced by demonstrate_platform_features(), is_healthy(), and main().

|
inline |
Check if collector is in a healthy state
Definition at line 290 of file platform_metrics_collector.h.
References is_available().

| bool kcenon::monitoring::platform_metrics_collector::is_platform_available | ( | ) | const |
Check if platform monitoring is available
Referenced by demonstrate_platform_features().

|
inlineoverridevirtual |
Get the unique name of this plugin
Implements kcenon::monitoring::collector_plugin.
Definition at line 266 of file platform_metrics_collector.h.
Referenced by main().

|
delete |
|
delete |
|
private |
Definition at line 343 of file platform_metrics_collector.h.
|
private |
Definition at line 347 of file platform_metrics_collector.h.
Referenced by interval().
|
private |
Definition at line 337 of file platform_metrics_collector.h.
|
private |
Definition at line 339 of file platform_metrics_collector.h.
|
private |
Definition at line 340 of file platform_metrics_collector.h.
|
mutableprivate |
Definition at line 348 of file platform_metrics_collector.h.
|
private |
Definition at line 344 of file platform_metrics_collector.h.