fix: 重写routes_system.py修复API错误
完整重写系统监控API,确保: - 正确的数据结构匹配JavaScript期待 - system.uptime/system.boot_time/system.process_count - cpu.count/cpu.logical - disk.free_gb - network.sent_mb/recv_mb/sent_speed/recv_speed - 所有异常处理和日志记录 修复500错误,现在系统监控应该正常显示
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user