42#include <unordered_map>
51class container_collector;
132 bool initialize(
const std::unordered_map<std::string, std::string>& config)
override;
Container monitoring plugin aggregating Docker, Kubernetes, and cgroup collectors.
std::string get_name() const override
container_plugin_config config_
~container_plugin() override
bool is_kubernetes_available() const
std::unordered_map< std::string, double > get_statistics() const override
std::atomic< size_t > collection_errors_
bool initialize(const std::unordered_map< std::string, std::string > &config) override
std::vector< std::string > get_metric_types() const override
void initialize_collectors()
bool is_healthy() const override
static std::unique_ptr< container_plugin > create(const container_plugin_config &config={})
std::atomic< size_t > total_collections_
static bool is_kubernetes_environment()
container_plugin(const container_plugin &)=delete
std::unique_ptr< container_collector > container_collector_
static bool is_running_in_container()
container_plugin_config get_config() const
std::atomic< size_t > containers_found_
bool is_cgroup_available() const
container_plugin(const container_plugin_config &config)
static container_runtime detect_runtime()
container_plugin & operator=(const container_plugin &)=delete
bool is_docker_available() const
std::vector< metric > collect() override
container_runtime
Supported container runtimes.
@ containerd
containerd runtime
@ auto_detect
Automatically detect the container runtime.
Plugin-based metric collector with dynamic discovery and registration.
Configuration options for the container monitoring plugin.
std::string docker_socket
Docker socket path (default: /var/run/docker.sock)
std::string namespace_filter
Kubernetes namespace filter (empty = all namespaces)
std::string kubeconfig_path
Kubeconfig path (empty = in-cluster config)
bool enable_cgroup
Enable cgroup-based metrics collection (default: true)
bool enable_docker
Enable Docker metrics collection (default: true)
bool enable_kubernetes
Enable Kubernetes metrics collection (default: false, requires K8s support)
bool collect_blkio_metrics
Collect block I/O metrics (default: true)
container_runtime runtime
Container runtime to use (default: auto_detect)
bool collect_network_metrics
Collect network metrics (default: true)
bool collect_pid_metrics
Collect process/PID metrics (default: true)