Virtualization metrics monitoring collector.
More...
#include <vm_collector.h>
|
| metric | create_metric (const std::string &name, double value, const std::unordered_map< std::string, std::string > &tags={}, const std::string &unit="") const |
| |
Virtualization metrics monitoring collector.
Collects metrics regarding the virtualization environment.
Definition at line 107 of file vm_collector.h.
◆ vm_collector() [1/3]
| kcenon::monitoring::vm_collector::vm_collector |
( |
| ) |
|
◆ ~vm_collector()
| kcenon::monitoring::vm_collector::~vm_collector |
( |
| ) |
|
|
default |
◆ vm_collector() [2/3]
| kcenon::monitoring::vm_collector::vm_collector |
( |
const vm_collector & | | ) |
|
|
delete |
◆ vm_collector() [3/3]
| kcenon::monitoring::vm_collector::vm_collector |
( |
vm_collector && | | ) |
|
|
delete |
◆ collect()
| auto kcenon::monitoring::vm_collector::collect |
( |
| ) |
-> std::vector< metric > |
|
overridevirtual |
Collect current metrics from this plugin.
- Returns
- Vector of collected metrics
This method is called periodically based on interval(). Implementations should:
- Return quickly (< 100ms recommended)
- Handle errors gracefully (return empty vector on failure)
- Be thread-safe if concurrent collection is enabled
- Avoid blocking I/O when possible
Implements kcenon::monitoring::collector_plugin.
◆ create_metric()
| metric kcenon::monitoring::vm_collector::create_metric |
( |
const std::string & | name, |
|
|
double | value, |
|
|
const std::unordered_map< std::string, std::string > & | tags = {}, |
|
|
const std::string & | unit = "" ) const |
|
private |
◆ get_metric_types()
| auto kcenon::monitoring::vm_collector::get_metric_types |
( |
| ) |
const -> std::vector< std::string > |
|
overridevirtual |
◆ get_statistics()
| std::unordered_map< std::string, double > kcenon::monitoring::vm_collector::get_statistics |
( |
| ) |
const |
|
overridevirtual |
◆ initialize()
| bool kcenon::monitoring::vm_collector::initialize |
( |
const std::unordered_map< std::string, std::string > & | config | ) |
|
|
overridevirtual |
Initialize the collector with configuration
- Parameters
-
| config | Configuration options |
- Returns
- true if initialization successful
Reimplemented from kcenon::monitoring::collector_plugin.
◆ interval()
| auto kcenon::monitoring::vm_collector::interval |
( |
| ) |
const -> std::chrono::milliseconds |
|
inlineoverridevirtual |
Get the collection interval for this plugin.
- Returns
- Collection interval in milliseconds
The registry uses this value to schedule collection tasks. Typical values:
- Fast metrics (CPU, memory): 1-5 seconds
- Slow metrics (disk, network): 10-60 seconds
- Very slow metrics (SMART data): 5-15 minutes
Implements kcenon::monitoring::collector_plugin.
Definition at line 121 of file vm_collector.h.
std::chrono::milliseconds collection_interval_
References collection_interval_.
◆ is_available()
| auto kcenon::monitoring::vm_collector::is_available |
( |
| ) |
const -> bool |
|
overridevirtual |
Check if this plugin is available on the current system.
- Returns
- True if plugin can collect metrics, false otherwise
Availability checks may include:
- Platform compatibility (Linux-only, Windows-only)
- Hardware presence (GPU, sensors)
- Permission checks (root required)
- Resource availability (proc filesystem, WMI)
The registry may skip unavailable plugins during registration.
Implements kcenon::monitoring::collector_plugin.
◆ is_healthy()
| bool kcenon::monitoring::vm_collector::is_healthy |
( |
| ) |
const |
Check if collector is in a healthy state
- Returns
- True if collector is operational
◆ name()
| auto kcenon::monitoring::vm_collector::name |
( |
| ) |
const -> std::string_view |
|
inlineoverridevirtual |
Get the unique name of this plugin.
- Returns
- Plugin name (must be unique within registry)
The name is used for:
- Plugin lookup and discovery
- Configuration mapping
- Metric tagging (added as "collector" tag)
Implements kcenon::monitoring::collector_plugin.
Definition at line 119 of file vm_collector.h.
119{ return "vm_collector"; }
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ collection_count_
| std::atomic<size_t> kcenon::monitoring::vm_collector::collection_count_ {0} |
|
private |
◆ collection_errors_
| std::atomic<size_t> kcenon::monitoring::vm_collector::collection_errors_ {0} |
|
private |
◆ collection_interval_
| std::chrono::milliseconds kcenon::monitoring::vm_collector::collection_interval_ {std::chrono::seconds(30)} |
|
private |
◆ collector_
◆ enabled_
| bool kcenon::monitoring::vm_collector::enabled_ {true} |
|
private |
◆ stats_mutex_
| std::mutex kcenon::monitoring::vm_collector::stats_mutex_ |
|
mutableprivate |
The documentation for this class was generated from the following file: