31 lines
1.1 KiB
Rust
31 lines
1.1 KiB
Rust
use crate::metrics::NodeMetrics;
|
||
use crate::alerts::{Alert, AlertLevel};
|
||
|
||
pub struct Dashboard;
|
||
|
||
impl Dashboard {
|
||
pub fn display(metrics: &NodeMetrics, alerts: &[Alert]) {
|
||
println!("\n╔════════════════════════════════════════╗");
|
||
println!("║ NAC节点监控仪表板 ║");
|
||
println!("╚════════════════════════════════════════╝\n");
|
||
|
||
metrics.display();
|
||
|
||
if !alerts.is_empty() {
|
||
println!("\n⚠️ 告警信息:");
|
||
for alert in alerts {
|
||
let level_str = match alert.level {
|
||
AlertLevel::Info => "ℹ️ INFO",
|
||
AlertLevel::Warning => "⚠️ WARN",
|
||
AlertLevel::Critical => "🚨 CRIT",
|
||
};
|
||
println!(" {} {}", level_str, alert.message);
|
||
}
|
||
} else {
|
||
println!("\n✅ 无告警");
|
||
}
|
||
|
||
println!();
|
||
}
|
||
}
|