38#include <unordered_map>
47class battery_collector;
49class temperature_collector;
122 bool initialize(
const std::unordered_map<std::string, std::string>& config)
override;
Hardware monitoring plugin aggregating battery, power, temperature, and GPU collectors.
std::atomic< size_t > collection_errors_
bool is_power_available() const
std::unique_ptr< power_collector > power_collector_
std::vector< std::string > get_metric_types() const override
hardware_plugin & operator=(const hardware_plugin &)=delete
std::unique_ptr< battery_collector > battery_collector_
static std::unique_ptr< hardware_plugin > create(const hardware_plugin_config &config={})
hardware_plugin_config config_
hardware_plugin_config get_config() const
std::unordered_map< std::string, double > get_statistics() const override
bool is_battery_available() const
bool is_gpu_available() const
std::vector< metric > collect() override
hardware_plugin(const hardware_plugin_config &config)
void initialize_collectors()
bool is_temperature_available() const
std::unique_ptr< gpu_collector > gpu_collector_
hardware_plugin(const hardware_plugin &)=delete
std::string get_name() const override
std::unique_ptr< temperature_collector > temperature_collector_
bool is_healthy() const override
std::atomic< size_t > total_collections_
bool initialize(const std::unordered_map< std::string, std::string > &config) override
~hardware_plugin() override
Plugin-based metric collector with dynamic discovery and registration.
Configuration options for the hardware monitoring plugin.
bool enable_battery
Enable battery monitoring (default: true)
bool battery_collect_thermal
bool power_collect_battery
Power-specific options.
bool gpu_collect_utilization
GPU-specific options.
bool temperature_collect_warnings
bool enable_gpu
Enable GPU monitoring (default: false, requires GPU hardware)
bool battery_collect_health
Battery-specific options.
bool temperature_collect_thresholds
Temperature-specific options.
bool gpu_collect_temperature
bool enable_power
Enable power consumption monitoring (default: true)
bool enable_temperature
Enable temperature monitoring (default: true)