|
Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
|
Container monitoring plugin aggregating Docker, Kubernetes, and cgroup collectors. More...
#include <container_plugin.h>


Public Member Functions | |
| ~container_plugin () override | |
| container_plugin (const container_plugin &)=delete | |
| container_plugin & | operator= (const container_plugin &)=delete |
| bool | initialize (const std::unordered_map< std::string, std::string > &config) override |
| std::vector< metric > | collect () override |
| std::string | get_name () const override |
| std::vector< std::string > | get_metric_types () const override |
| bool | is_healthy () const override |
| std::unordered_map< std::string, double > | get_statistics () const override |
| bool | is_docker_available () const |
| bool | is_kubernetes_available () const |
| bool | is_cgroup_available () const |
| container_plugin_config | get_config () const |
Public Member Functions inherited from kcenon::monitoring::metric_collector_plugin | |
| virtual | ~metric_collector_plugin ()=default |
Static Public Member Functions | |
| static std::unique_ptr< container_plugin > | create (const container_plugin_config &config={}) |
| static bool | is_running_in_container () |
| static bool | is_kubernetes_environment () |
| static container_runtime | detect_runtime () |
Private Member Functions | |
| container_plugin (const container_plugin_config &config) | |
| void | initialize_collectors () |
Private Attributes | |
| std::unique_ptr< container_collector > | container_collector_ |
| container_plugin_config | config_ |
| bool | initialized_ {false} |
| std::mutex | stats_mutex_ |
| std::atomic< size_t > | total_collections_ {0} |
| std::atomic< size_t > | collection_errors_ {0} |
| std::atomic< size_t > | containers_found_ {0} |
Container monitoring plugin aggregating Docker, Kubernetes, and cgroup collectors.
This plugin provides container-specific metrics collection for containerized deployments. For bare-metal deployments, this plugin should not be loaded to reduce binary size and avoid unnecessary collection overhead.
Metrics provided:
Definition at line 116 of file container_plugin.h.
|
override |
|
delete |
|
explicitprivate |
|
overridevirtual |
Collect metrics from the data source
Implements kcenon::monitoring::metric_collector_plugin.
|
static |
Create a container plugin instance with configuration
| config | Plugin configuration options |
|
static |
Detect the container runtime in use
| container_plugin_config kcenon::monitoring::plugins::container_plugin::get_config | ( | ) | const |
Get the current configuration
|
overridevirtual |
Get supported metric types
Implements kcenon::monitoring::metric_collector_plugin.
|
overridevirtual |
Get the name of this plugin
Implements kcenon::monitoring::metric_collector_plugin.
|
overridevirtual |
Get plugin-specific statistics
Implements kcenon::monitoring::metric_collector_plugin.
|
overridevirtual |
Initialize the plugin with configuration
| config | Plugin-specific configuration |
Implements kcenon::monitoring::metric_collector_plugin.
|
private |
| bool kcenon::monitoring::plugins::container_plugin::is_cgroup_available | ( | ) | const |
Check if cgroup metrics are available
| bool kcenon::monitoring::plugins::container_plugin::is_docker_available | ( | ) | const |
Check if Docker metrics are available
|
overridevirtual |
Check if the plugin is healthy
Implements kcenon::monitoring::metric_collector_plugin.
| bool kcenon::monitoring::plugins::container_plugin::is_kubernetes_available | ( | ) | const |
Check if Kubernetes metrics are available
|
static |
Check if running in a Kubernetes environment
|
static |
Check if running inside a container
|
delete |
|
private |
Definition at line 194 of file container_plugin.h.
|
private |
Definition at line 188 of file container_plugin.h.
|
private |
Definition at line 185 of file container_plugin.h.
|
private |
Definition at line 195 of file container_plugin.h.
|
private |
Definition at line 189 of file container_plugin.h.
|
mutableprivate |
Definition at line 192 of file container_plugin.h.
|
private |
Definition at line 193 of file container_plugin.h.