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

#include <smart_collector.h>

Collaboration diagram for kcenon::monitoring::smart_info_collector:
Collaboration graph

Public Member Functions

 smart_info_collector ()
 
 ~smart_info_collector ()
 
 smart_info_collector (const smart_info_collector &)=delete
 
smart_info_collectoroperator= (const smart_info_collector &)=delete
 
 smart_info_collector (smart_info_collector &&)=delete
 
smart_info_collectoroperator= (smart_info_collector &&)=delete
 
bool is_smartctl_available () const
 
std::vector< disk_infoenumerate_disks ()
 
smart_disk_metrics collect_smart_metrics (const disk_info &info)
 

Private Member Functions

std::string execute_command (const std::string &command) const
 
smart_disk_metrics parse_smartctl_json (const std::string &json_output, const disk_info &info) const
 

Private Attributes

std::mutex mutex_
 
bool smartctl_checked_ {false}
 
bool smartctl_available_ {false}
 

Detailed Description

Platform-specific SMART data collector implementation

Definition at line 74 of file smart_collector.h.

Constructor & Destructor Documentation

◆ smart_info_collector() [1/3]

kcenon::monitoring::smart_info_collector::smart_info_collector ( )

◆ ~smart_info_collector()

kcenon::monitoring::smart_info_collector::~smart_info_collector ( )

◆ smart_info_collector() [2/3]

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

◆ smart_info_collector() [3/3]

kcenon::monitoring::smart_info_collector::smart_info_collector ( smart_info_collector && )
delete

Member Function Documentation

◆ collect_smart_metrics()

smart_disk_metrics kcenon::monitoring::smart_info_collector::collect_smart_metrics ( const disk_info & info)

Collect SMART metrics for a specific disk

Parameters
infoDisk info
Returns
SMART disk metrics

◆ enumerate_disks()

std::vector< disk_info > kcenon::monitoring::smart_info_collector::enumerate_disks ( )

Enumerate all disks that may have SMART data

Returns
Vector of disk info

◆ execute_command()

std::string kcenon::monitoring::smart_info_collector::execute_command ( const std::string & command) const
private

◆ is_smartctl_available()

bool kcenon::monitoring::smart_info_collector::is_smartctl_available ( ) const

Check if smartctl is available on the system

Returns
True if smartctl can be executed

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ parse_smartctl_json()

smart_disk_metrics kcenon::monitoring::smart_info_collector::parse_smartctl_json ( const std::string & json_output,
const disk_info & info ) const
private

Member Data Documentation

◆ mutex_

std::mutex kcenon::monitoring::smart_info_collector::mutex_
mutableprivate

Definition at line 105 of file smart_collector.h.

◆ smartctl_available_

bool kcenon::monitoring::smart_info_collector::smartctl_available_ {false}
mutableprivate

Definition at line 107 of file smart_collector.h.

107{false};

◆ smartctl_checked_

bool kcenon::monitoring::smart_info_collector::smartctl_checked_ {false}
mutableprivate

Definition at line 106 of file smart_collector.h.

106{false};

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