Unified network metrics collector implementing collector_plugin interface.
More...
#include <network_metrics_collector.h>
Unified network metrics collector implementing collector_plugin interface.
Combines socket buffer and TCP state monitoring into a single collector. Provides configurable collection of different metric types.
- Examples
- system_collectors_example.cpp.
Definition at line 240 of file network_metrics_collector.h.
◆ network_metrics_collector() [1/3]
| kcenon::monitoring::network_metrics_collector::network_metrics_collector |
( |
| ) |
|
◆ ~network_metrics_collector()
| kcenon::monitoring::network_metrics_collector::~network_metrics_collector |
( |
| ) |
|
|
overridedefault |
◆ network_metrics_collector() [2/3]
◆ network_metrics_collector() [3/3]
◆ add_socket_buffer_metrics()
| void kcenon::monitoring::network_metrics_collector::add_socket_buffer_metrics |
( |
std::vector< metric > & | metrics, |
|
|
const network_metrics & | data ) |
|
private |
◆ add_tcp_state_metrics()
| void kcenon::monitoring::network_metrics_collector::add_tcp_state_metrics |
( |
std::vector< metric > & | metrics, |
|
|
const network_metrics & | data ) |
|
private |
◆ collect()
| auto kcenon::monitoring::network_metrics_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.
- Examples
- system_collectors_example.cpp.
Referenced by main().
◆ get_last_metrics()
| network_metrics kcenon::monitoring::network_metrics_collector::get_last_metrics |
( |
| ) |
const |
Get last collected network metrics
- Returns
- Most recent network_metrics reading
◆ get_metadata()
| auto kcenon::monitoring::network_metrics_collector::get_metadata |
( |
| ) |
const -> plugin_metadata |
|
inlineoverridevirtual |
Get plugin metadata.
- Returns
- Metadata describing this plugin
Default implementation returns minimal metadata. Override to provide rich plugin information.
Reimplemented from kcenon::monitoring::collector_plugin.
Definition at line 258 of file network_metrics_collector.h.
258 {
259 return plugin_metadata{
261 .description = "Network metrics (socket buffers, TCP states)",
263 .version = "1.0.0",
264 .dependencies = {},
265 .requires_platform_support = true
266 };
267 }
auto name() const -> std::string_view override
Get the unique name of this plugin.
@ network
Network metrics (connectivity, bandwidth)
References name(), and kcenon::monitoring::network.
◆ get_metric_types()
| auto kcenon::monitoring::network_metrics_collector::get_metric_types |
( |
| ) |
const -> std::vector< std::string > |
|
overridevirtual |
◆ get_statistics()
| auto kcenon::monitoring::network_metrics_collector::get_statistics |
( |
| ) |
const -> stats_map |
|
overridevirtual |
◆ initialize()
| auto kcenon::monitoring::network_metrics_collector::initialize |
( |
const config_map & | config | ) |
-> bool |
|
overridevirtual |
Initialize the collector with configuration
- Parameters
-
| config | Configuration options:
- "collect_socket_buffers": "true"/"false" (default: true)
- "collect_tcp_states": "true"/"false" (default: true)
- "time_wait_warning_threshold": count (default: 10000)
- "close_wait_warning_threshold": count (default: 100)
- "queue_full_threshold_bytes": bytes (default: 65536)
- "memory_warning_threshold_bytes": bytes (default: 104857600)
|
- Returns
- true if initialization successful
Reimplemented from kcenon::monitoring::collector_plugin.
- Examples
- system_collectors_example.cpp.
Referenced by main().
◆ interval()
| auto kcenon::monitoring::network_metrics_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 254 of file network_metrics_collector.h.
254{ return std::chrono::seconds(10); }
◆ is_available()
| auto kcenon::monitoring::network_metrics_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.
- Examples
- system_collectors_example.cpp.
Referenced by main().
◆ is_socket_buffer_monitoring_available()
| bool kcenon::monitoring::network_metrics_collector::is_socket_buffer_monitoring_available |
( |
| ) |
const |
Check if socket buffer monitoring is available
- Returns
- True if socket buffer metrics are accessible
◆ is_tcp_state_monitoring_available()
| bool kcenon::monitoring::network_metrics_collector::is_tcp_state_monitoring_available |
( |
| ) |
const |
Check if TCP state monitoring is available
- Returns
- True if TCP state metrics are accessible
◆ name()
| auto kcenon::monitoring::network_metrics_collector::name |
( |
| ) |
const -> std::string_view |
|
inlineoverridevirtual |
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ collection_count_
| std::atomic<size_t> kcenon::monitoring::network_metrics_collector::collection_count_ {0} |
|
private |
◆ collection_errors_
| std::atomic<size_t> kcenon::monitoring::network_metrics_collector::collection_errors_ {0} |
|
private |
◆ collector_
◆ config_
◆ enabled_
| bool kcenon::monitoring::network_metrics_collector::enabled_ {true} |
|
private |
◆ last_metrics_
| network_metrics kcenon::monitoring::network_metrics_collector::last_metrics_ |
|
private |
The documentation for this class was generated from the following file: