# aiva/resource_monitor.py

import psutil
import logging

logger = logging.getLogger(__name__)

class ResourceMonitor:
    def __init__(self):
        pass

    def get_cpu_usage(self):
        try:
            cpu_usage = psutil.cpu_percent(interval=0.5)
            logger.debug(f"CPU Usage: {cpu_usage}%")
            return cpu_usage
        except Exception as e:
            logger.error(f"Error getting CPU usage: {e}")
            return 0  # Return 0 in case of error

    def get_memory_usage(self):
        try:
            memory = psutil.virtual_memory()
            memory_usage = memory.percent
            logger.debug(f"Memory Usage: {memory_usage}%")
            return memory_usage
        except Exception as e:
            logger.error(f"Error getting memory usage: {e}")
            return 0  # Return 0 in case of error


if __name__ == '__main__':
    # Example Usage
    logging.basicConfig(level=logging.DEBUG)
    resource_monitor = ResourceMonitor()
    cpu_usage = resource_monitor.get_cpu_usage()
    memory_usage = resource_monitor.get_memory_usage()
    print(f"CPU Usage: {cpu_usage}%")
    print(f"Memory Usage: {memory_usage}%")
