PingWatch 网络设备离线监控系统
- FastAPI 后端 + Vue 3 前端 - Docker Compose 一键部署 - Casdoor OAuth 认证集成 - LogHive 集中式日志 - 设备批量 CSV 导入/导出 - WebSocket 实时状态推送 - 企业微信告警通知 - fping 高性能并发 Ping 检测 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class DeviceStatusSummary(BaseModel):
|
||||
total: int
|
||||
online: int
|
||||
offline: int
|
||||
checking: int
|
||||
unknown: int
|
||||
online_rate: float
|
||||
|
||||
|
||||
class DeviceStatsItem(BaseModel):
|
||||
device_id: int
|
||||
device_name: str
|
||||
device_ip: str
|
||||
device_type: str
|
||||
location: str
|
||||
project_name: str
|
||||
total_pings: int
|
||||
alive_pings: int
|
||||
packet_loss_rate: float
|
||||
avg_response_time: Optional[float] = None
|
||||
offline_count: int
|
||||
total_offline_duration: int # 分钟
|
||||
max_offline_duration: int
|
||||
|
||||
|
||||
class TimeSeriesPoint(BaseModel):
|
||||
time: datetime
|
||||
value: float
|
||||
|
||||
|
||||
class DashboardStats(BaseModel):
|
||||
summary: DeviceStatusSummary
|
||||
recent_offline: list # list[AlertEventOut]
|
||||
offline_trend: list[TimeSeriesPoint]
|
||||
packet_loss_top: list[DeviceStatsItem]
|
||||
Reference in New Issue
Block a user