diff --git a/repeater/data_acquisition/storage_collector.py b/repeater/data_acquisition/storage_collector.py index 02b7ea6..e2a549e 100644 --- a/repeater/data_acquisition/storage_collector.py +++ b/repeater/data_acquisition/storage_collector.py @@ -64,6 +64,11 @@ class StorageCollector: self.disallowed_packet_types = set() else: self.disallowed_packet_types = set() + + # Initialize hardware stats collector + from .hardware_stats import HardwareStatsCollector + self.hardware_stats = HardwareStatsCollector() + logger.info("Hardware stats collector initialized") def _get_live_stats(self) -> dict: """Get live stats from RepeaterHandler""" @@ -228,3 +233,19 @@ class StorageCollector: def delete_advert(self, advert_id: int) -> bool: return self.sqlite_handler.delete_advert(advert_id) + + def get_hardware_stats(self) -> Optional[dict]: + """Get current hardware statistics""" + try: + return self.hardware_stats.get_stats() + except Exception as e: + logger.error(f"Error getting hardware stats: {e}") + return None + + def get_hardware_processes(self) -> Optional[list]: + """Get current process summary""" + try: + return self.hardware_stats.get_processes_summary() + except Exception as e: + logger.error(f"Error getting hardware processes: {e}") + return None diff --git a/repeater/web/api_endpoints.py b/repeater/web/api_endpoints.py index 1147b6e..ccb2e17 100644 --- a/repeater/web/api_endpoints.py +++ b/repeater/web/api_endpoints.py @@ -249,8 +249,9 @@ class APIEndpoints: """Get comprehensive hardware statistics""" try: # Get hardware stats from storage collector - if hasattr(self.daemon_instance, 'storage_collector') and self.daemon_instance.storage_collector: - stats = self.daemon_instance.storage_collector.get_hardware_stats() + storage = self._get_storage() + if storage: + stats = storage.get_hardware_stats() if stats: return self._success(stats) else: @@ -267,8 +268,9 @@ class APIEndpoints: """Get summary of top processes""" try: # Get process stats from storage collector - if hasattr(self.daemon_instance, 'storage_collector') and self.daemon_instance.storage_collector: - processes = self.daemon_instance.storage_collector.get_hardware_processes() + storage = self._get_storage() + if storage: + processes = storage.get_hardware_processes() if processes: return self._success(processes) else: