59 lines
1.7 KiB
Python
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 |