MLPlatform/api/system_api.py

59 lines
1.7 KiB
Python

from fastapi import APIRouter, HTTPException, Query
from typing import Optional
from datetime import datetime
from function.system_monitor import SystemMonitor
router = APIRouter()
system_monitor = SystemMonitor()
@router.get("/resources")
async def get_system_resources():
"""获取系统资源使用情况"""
result = system_monitor.get_system_resources()
if result['status'] == 'error':
raise HTTPException(status_code=500, detail=result['message'])
return result
@router.get("/history")
async def get_training_history(
page: int = Query(1, ge=1),
page_size: int = Query(10, ge=1, le=100),
start_time: Optional[str] = None,
end_time: Optional[str] = None,
status: Optional[str] = None,
experiment_name: Optional[str] = None
):
"""获取训练历史记录"""
result = system_monitor.get_training_history(
page=page,
page_size=page_size,
start_time=start_time,
end_time=end_time,
status=status,
experiment_name=experiment_name
)
if result['status'] == 'error':
raise HTTPException(status_code=500, detail=result['message'])
return result
@router.get("/logs")
async def get_system_logs(
level: Optional[str] = None,
start_time: Optional[str] = None,
end_time: Optional[str] = None,
module: Optional[str] = None,
page: int = Query(1, ge=1),
page_size: int = Query(20, ge=1, le=100)
):
"""获取系统日志"""
result = system_monitor.get_system_logs(
level=level,
start_time=start_time,
end_time=end_time,
module=module,
page=page,
page_size=page_size
)
if result['status'] == 'error':
raise HTTPException(status_code=500, detail=result['message'])
return result