Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
Loading...
Searching...
No Matches
kcenon::monitoring::container_info_collector Class Reference

#include <container_collector.h>

Collaboration diagram for kcenon::monitoring::container_info_collector:
Collaboration graph

Classes

struct  cpu_stats
 

Public Member Functions

 container_info_collector ()
 
 ~container_info_collector ()
 
 container_info_collector (const container_info_collector &)=delete
 
container_info_collectoroperator= (const container_info_collector &)=delete
 
 container_info_collector (container_info_collector &&)=delete
 
container_info_collectoroperator= (container_info_collector &&)=delete
 
cgroup_version detect_cgroup_version () const
 
std::vector< container_infoenumerate_containers ()
 
container_metrics collect_container_metrics (const container_info &info)
 
bool is_containerized () const
 

Private Attributes

std::mutex mutex_
 
cgroup_version cached_version_ {cgroup_version::none}
 
bool version_detected_ {false}
 
std::unordered_map< std::string, cpu_statsprev_cpu_stats_
 

Detailed Description

Platform-specific container info collector implementation

Definition at line 88 of file container_collector.h.

Constructor & Destructor Documentation

◆ container_info_collector() [1/3]

kcenon::monitoring::container_info_collector::container_info_collector ( )

◆ ~container_info_collector()

kcenon::monitoring::container_info_collector::~container_info_collector ( )

◆ container_info_collector() [2/3]

kcenon::monitoring::container_info_collector::container_info_collector ( const container_info_collector & )
delete

◆ container_info_collector() [3/3]

kcenon::monitoring::container_info_collector::container_info_collector ( container_info_collector && )
delete

Member Function Documentation

◆ collect_container_metrics()

container_metrics kcenon::monitoring::container_info_collector::collect_container_metrics ( const container_info & info)

Collect metrics for a specific container

Parameters
infoContainer info
Returns
Container metrics

◆ detect_cgroup_version()

cgroup_version kcenon::monitoring::container_info_collector::detect_cgroup_version ( ) const

Detect which cgroup version is available

Returns
Detected cgroup version

◆ enumerate_containers()

std::vector< container_info > kcenon::monitoring::container_info_collector::enumerate_containers ( )

Enumerate all containers

Returns
Vector of container info

◆ is_containerized()

bool kcenon::monitoring::container_info_collector::is_containerized ( ) const

Check if running inside a container

Returns
True if running inside a container

◆ operator=() [1/2]

container_info_collector & kcenon::monitoring::container_info_collector::operator= ( const container_info_collector & )
delete

◆ operator=() [2/2]

container_info_collector & kcenon::monitoring::container_info_collector::operator= ( container_info_collector && )
delete

Member Data Documentation

◆ cached_version_

cgroup_version kcenon::monitoring::container_info_collector::cached_version_ {cgroup_version::none}
private

Definition at line 126 of file container_collector.h.

@ none
Not in a cgroup or not Linux.

◆ mutex_

std::mutex kcenon::monitoring::container_info_collector::mutex_
mutableprivate

Definition at line 125 of file container_collector.h.

◆ prev_cpu_stats_

std::unordered_map<std::string, cpu_stats> kcenon::monitoring::container_info_collector::prev_cpu_stats_
private

Definition at line 134 of file container_collector.h.

◆ version_detected_

bool kcenon::monitoring::container_info_collector::version_detected_ {false}
private

Definition at line 127 of file container_collector.h.

127{false};

The documentation for this class was generated from the following file: