diff --git a/routes_system.py b/routes_system.py index 1738a2b..6796a1d 100644 --- a/routes_system.py +++ b/routes_system.py @@ -7,6 +7,7 @@ import os import subprocess import time from datetime import datetime +from flask import jsonify, request from utils import log_message, get_cpu_temperatures, load_alert_config try: @@ -46,6 +47,7 @@ def register_system_routes(app): disk = psutil.disk_usage('/') disk_total_gb = round(disk.total / (1024**3), 2) disk_used_gb = round(disk.used / (1024**3), 2) + disk_free_gb = round(disk.free / (1024**3), 2) disk_percent = disk.percent # 网速(需要计算差值) @@ -103,7 +105,7 @@ def register_system_routes(app): 'disk': { 'total_gb': disk_total_gb, 'used_gb': disk_used_gb, - 'free_gb': round(disk.free / (1024**3), 2), + 'free_gb': disk_free_gb, 'percent': disk_percent }, 'network': { @@ -114,7 +116,8 @@ def register_system_routes(app): } }) except Exception as e: - return jsonify({'error': str(e)}), 500 + log_message(f"系统监控API错误: {e}") + return jsonify({'error': str(e), 'available': False}), 500 @app.route('/api/system/processes') def api_system_processes(): @@ -123,6 +126,9 @@ def register_system_routes(app): return jsonify({'error': 'psutil未安装'}), 500 try: + limit = int(request.args.get('limit', 10)) + limit = max(1, min(50, limit)) + processes = [] for proc in psutil.process_iter(['pid', 'name', 'cpu_percent', 'memory_percent', 'status']): try: @@ -138,7 +144,7 @@ def register_system_routes(app): # 按CPU排序 processes.sort(key=lambda x: x['cpu'], reverse=True) - processes = processes[:50] # 只返回前50个 + processes = processes[:limit] return jsonify({'processes': processes}) except Exception as e: @@ -173,7 +179,6 @@ def register_system_routes(app): @app.route('/api/alerts', methods=['POST']) def api_save_alerts(): """保存预警配置""" - from flask import request import json from config import ALERT_CONFIG_FILE