import psutil
import platform
import shutil
import subprocess

def get_system_metrics():
    try:
        metrics = {
            "cpu": psutil.cpu_percent(interval=1),
            "ram": psutil.virtual_memory().percent,
            "disk": psutil.disk_usage('/').percent,
            "uptime": get_uptime(),
            "services": {
                "apache2": check_service_status("apache2"),
                "mysql": check_service_status("mysql"),
                "ssh": check_service_status("ssh"),
            }
        }
        return metrics
    except Exception as e:
        print("Erreur dans get_system_metrics:", e)
        return {}

def get_uptime():
    return int(float(open('/proc/uptime').read().split()[0]) / 3600)

def check_service_status(service_name):
    try:
        result = subprocess.run(
            ['systemctl', 'is-active', service_name],
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE,
            text=True
        )
        return result.stdout.strip() == 'active'
    except Exception as e:
        print(f"Erreur lors de la vérification du service {service_name}: {e}")
        return False
