|
Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
|
Pure virtual interface for metric collector plugins. More...
#include <collector_plugin.h>


Public Member Functions | |
| virtual | ~collector_plugin ()=default |
| virtual auto | name () const -> std::string_view=0 |
| Get the unique name of this plugin. | |
| virtual auto | collect () -> std::vector< metric >=0 |
| Collect current metrics from this plugin. | |
| virtual auto | interval () const -> std::chrono::milliseconds=0 |
| Get the collection interval for this plugin. | |
| virtual auto | is_available () const -> bool=0 |
| Check if this plugin is available on the current system. | |
| virtual auto | get_metadata () const -> plugin_metadata |
| Get plugin metadata. | |
| virtual auto | initialize (const config_map &) -> bool |
| Initialize plugin with configuration. | |
| virtual void | shutdown () |
| Shutdown plugin and release resources. | |
| virtual auto | get_statistics () const -> stats_map |
| Get plugin statistics. | |
| virtual auto | get_metric_types () const -> std::vector< std::string >=0 |
| Get supported metric types. | |
Pure virtual interface for metric collector plugins.
This interface defines the contract that all metric collector plugins must implement. It supports both built-in collectors and dynamically loaded plugins.
Thread Safety:
Lifecycle:
Definition at line 139 of file collector_plugin.h.
|
virtualdefault |
|
pure virtual |
Collect current metrics from this plugin.
This method is called periodically based on interval(). Implementations should:
Implemented in example_plugin, kcenon::monitoring::battery_collector, kcenon::monitoring::container_collector, kcenon::monitoring::gpu_collector, kcenon::monitoring::interrupt_collector, kcenon::monitoring::network_metrics_collector, kcenon::monitoring::platform_metrics_collector, kcenon::monitoring::power_collector, kcenon::monitoring::process_metrics_collector, kcenon::monitoring::security_collector, kcenon::monitoring::smart_collector, kcenon::monitoring::temperature_collector, kcenon::monitoring::uptime_collector, and kcenon::monitoring::vm_collector.
|
inlinevirtual |
Get plugin metadata.
Default implementation returns minimal metadata. Override to provide rich plugin information.
Reimplemented in example_plugin, kcenon::monitoring::battery_collector, kcenon::monitoring::container_collector, kcenon::monitoring::gpu_collector, kcenon::monitoring::interrupt_collector, kcenon::monitoring::network_metrics_collector, kcenon::monitoring::power_collector, kcenon::monitoring::temperature_collector, and kcenon::monitoring::uptime_collector.
Definition at line 200 of file collector_plugin.h.
References kcenon::monitoring::custom, and name().

|
pure virtual |
Get supported metric types.
Used for filtering and documentation.
Implemented in kcenon::monitoring::battery_collector, kcenon::monitoring::container_collector, kcenon::monitoring::gpu_collector, kcenon::monitoring::interrupt_collector, kcenon::monitoring::network_metrics_collector, kcenon::monitoring::platform_metrics_collector, kcenon::monitoring::power_collector, kcenon::monitoring::process_metrics_collector, kcenon::monitoring::security_collector, kcenon::monitoring::smart_collector, kcenon::monitoring::temperature_collector, kcenon::monitoring::uptime_collector, and kcenon::monitoring::vm_collector.
|
inlinevirtual |
Get plugin statistics.
Optional: Override to provide plugin-specific statistics.
Reimplemented in kcenon::monitoring::battery_collector, kcenon::monitoring::container_collector, kcenon::monitoring::gpu_collector, kcenon::monitoring::interrupt_collector, kcenon::monitoring::network_metrics_collector, kcenon::monitoring::platform_metrics_collector, kcenon::monitoring::power_collector, kcenon::monitoring::process_metrics_collector, kcenon::monitoring::security_collector, kcenon::monitoring::smart_collector, kcenon::monitoring::temperature_collector, kcenon::monitoring::uptime_collector, and kcenon::monitoring::vm_collector.
Definition at line 237 of file collector_plugin.h.
|
inlinevirtual |
Initialize plugin with configuration.
| config | Configuration key-value pairs |
Called once after plugin registration. Optional: Default implementation always succeeds.
Reimplemented in example_plugin, kcenon::monitoring::battery_collector, kcenon::monitoring::container_collector, kcenon::monitoring::gpu_collector, kcenon::monitoring::interrupt_collector, kcenon::monitoring::network_metrics_collector, kcenon::monitoring::platform_metrics_collector, kcenon::monitoring::power_collector, kcenon::monitoring::process_metrics_collector, kcenon::monitoring::security_collector, kcenon::monitoring::smart_collector, kcenon::monitoring::temperature_collector, kcenon::monitoring::uptime_collector, and kcenon::monitoring::vm_collector.
Definition at line 219 of file collector_plugin.h.
|
pure virtual |
Get the collection interval for this plugin.
The registry uses this value to schedule collection tasks. Typical values:
Implemented in kcenon::monitoring::battery_collector, kcenon::monitoring::container_collector, kcenon::monitoring::gpu_collector, kcenon::monitoring::interrupt_collector, kcenon::monitoring::network_metrics_collector, kcenon::monitoring::platform_metrics_collector, kcenon::monitoring::power_collector, kcenon::monitoring::process_metrics_collector, kcenon::monitoring::security_collector, kcenon::monitoring::smart_collector, kcenon::monitoring::temperature_collector, kcenon::monitoring::uptime_collector, and kcenon::monitoring::vm_collector.
|
pure virtual |
Check if this plugin is available on the current system.
Availability checks may include:
The registry may skip unavailable plugins during registration.
Implemented in example_plugin, kcenon::monitoring::battery_collector, kcenon::monitoring::container_collector, kcenon::monitoring::gpu_collector, kcenon::monitoring::interrupt_collector, kcenon::monitoring::network_metrics_collector, kcenon::monitoring::platform_metrics_collector, kcenon::monitoring::power_collector, kcenon::monitoring::process_metrics_collector, kcenon::monitoring::security_collector, kcenon::monitoring::smart_collector, kcenon::monitoring::temperature_collector, kcenon::monitoring::uptime_collector, and kcenon::monitoring::vm_collector.
|
pure virtual |
Get the unique name of this plugin.
The name is used for:
Implemented in example_plugin, kcenon::monitoring::battery_collector, kcenon::monitoring::container_collector, kcenon::monitoring::gpu_collector, kcenon::monitoring::interrupt_collector, kcenon::monitoring::network_metrics_collector, kcenon::monitoring::platform_metrics_collector, kcenon::monitoring::power_collector, kcenon::monitoring::process_metrics_collector, kcenon::monitoring::security_collector, kcenon::monitoring::smart_collector, kcenon::monitoring::temperature_collector, kcenon::monitoring::uptime_collector, and kcenon::monitoring::vm_collector.
Referenced by get_metadata().

|
inlinevirtual |
Shutdown plugin and release resources.
Called before plugin destruction. Optional: Default implementation is no-op.
Reimplemented in example_plugin, kcenon::monitoring::battery_collector, kcenon::monitoring::container_collector, kcenon::monitoring::gpu_collector, kcenon::monitoring::power_collector, and kcenon::monitoring::temperature_collector.
Definition at line 229 of file collector_plugin.h.