补全 Wavelet 边缘节点详情数据看板

将旧版 openflare-server 节点观测界面迁移至 Wavelet 前端,包含运行诊断摘要、
系统信息、实时资源、网络流量、24 小时趋势图、请求结构分布与健康事件时间线。
This commit is contained in:
ryan
2026-06-18 18:54:47 +08:00
parent 48421c12de
commit 0b646238e9
13 changed files with 1117 additions and 312 deletions
@@ -38,7 +38,12 @@ export type {
NodeBootstrapToken,
NodeItem,
NodeMutationPayload,
NodeHealthEvent,
NodeObservability,
NodeObservabilityAnalytics,
NodeObservabilityTrends,
NodeSystemProfile,
NodeTrafficReport,
NodeStatus,
NodeType,
OpenrestyStatus,
@@ -57,6 +62,8 @@ export type {
DistributionItem,
TrafficTrendPoint,
CapacityTrendPoint,
NetworkTrendPoint,
DiskIOTrendPoint,
WAFIPGroup,
WAFIPGroupAutoTestPayload,
WAFIPGroupAutoTestResult,
@@ -147,11 +147,65 @@ export interface NodeHealthEvent {
resolved_at?: string | null;
}
export interface NodeTrafficReport {
window_started_at: string;
window_ended_at: string;
request_count: number;
error_count: number;
unique_visitor_count: number;
status_codes_json: string;
top_domains_json: string;
source_countries_json: string;
}
export interface NodeTrafficSummary {
window_started_at: string;
window_ended_at: string;
request_count: number;
unique_visitor_count: number;
error_count: number;
estimated_qps: number;
error_rate_percent: number;
}
export interface NodeHealthSummary {
active_alerts: number;
critical_alerts: number;
warning_alerts: number;
info_alerts: number;
resolved_alerts: number;
has_capacity_risk: boolean;
has_traffic_risk: boolean;
has_runtime_risk: boolean;
}
export interface NodeTrafficDistributions {
status_codes: DistributionItem[];
top_domains: DistributionItem[];
source_countries: DistributionItem[];
}
export interface NodeObservabilityAnalytics {
traffic: NodeTrafficSummary | null;
distributions: NodeTrafficDistributions;
health: NodeHealthSummary | null;
}
export interface NodeObservabilityTrends {
traffic_24h: TrafficTrendPoint[];
capacity_24h: CapacityTrendPoint[];
network_24h: NetworkTrendPoint[];
disk_io_24h: DiskIOTrendPoint[];
}
export interface NodeObservability {
node_id: string;
profile: NodeSystemProfile | null;
metric_snapshots: NodeMetricSnapshot[];
traffic_reports?: NodeTrafficReport[];
health_events: NodeHealthEvent[];
analytics?: NodeObservabilityAnalytics;
trends?: NodeObservabilityTrends;
}
export type ProxyRouteConfigSection =