This commit is contained in:
2025-10-12 18:03:32 +02:00
parent 49aee702f2
commit b226217ba4
7 changed files with 28 additions and 67 deletions

View File

@@ -20,10 +20,7 @@ pub fn render(frame: &mut Frame, hosts: &[HostDisplayData], area: Rect) {
color = Color::Gray;
}
let title = format!(
"Alerts • ok:{} warn:{} fail:{}",
ok_count, warn_count, fail_count
);
let title = "Alerts".to_string();
let widget_status = match severity {
AlertSeverity::Critical => StatusLevel::Error,

View File

@@ -32,10 +32,7 @@ fn render_metrics(
) {
let summary = &metrics.summary;
let color = summary_color(summary);
let title = format!(
"Services • ok:{} warn:{} fail:{}",
summary.healthy, summary.degraded, summary.failed
);
let title = "Services".to_string();
let widget_status = if summary.failed > 0 {
StatusLevel::Error
@@ -48,7 +45,7 @@ fn render_metrics(
let mut data = WidgetData::new(
title,
Some(WidgetStatus::new(widget_status)),
vec!["Service".to_string(), "Memory".to_string(), "CPU".to_string(), "Disk".to_string()]
vec!["Service".to_string(), "Memory (GB)".to_string(), "CPU".to_string(), "Disk".to_string()]
);
@@ -133,35 +130,34 @@ fn summary_color(summary: &ServiceSummary) -> Color {
}
fn format_memory_value(used: f32, quota: f32) -> String {
let used_gb = used / 1000.0;
let quota_gb = quota / 1000.0;
if quota > 0.05 {
format!("{:.1}/{:.1} MiB", used, quota)
format!("{:.1}/{:.1} GB", used_gb, quota_gb)
} else if used > 0.05 {
format!("{:.1} MiB", used)
format!("{:.1} GB", used_gb)
} else {
"".to_string()
"0.0 GB".to_string()
}
}
fn format_cpu_value(cpu_percent: f32) -> String {
if cpu_percent >= 0.1 {
format!("{:.1}%", cpu_percent)
} else if cpu_percent > 0.0 {
"<0.1%".to_string()
} else {
"".to_string()
"0.0%".to_string()
}
}
fn format_disk_value(used: f32) -> String {
if used >= 1.0 {
format!("{:.1} GiB", used)
format!("{:.1} GB", used)
} else if used >= 0.001 {
// 1 MB or more
format!("{:.0} MiB", used * 1024.0)
} else if used > 0.0 {
format!("<1 MiB")
// 1 MB or more
format!("{:.0} MB", used * 1000.0)
} else {
"".to_string()
"<1 MB".to_string()
}
}

View File

@@ -26,10 +26,7 @@ pub fn render(frame: &mut Frame, host: Option<&HostDisplayData>, area: Rect) {
fn render_metrics(frame: &mut Frame, _host: &HostDisplayData, metrics: &SmartMetrics, area: Rect) {
let color = smart_status_color(&metrics.status);
let title = format!(
"Storage • ok:{} warn:{} crit:{}",
metrics.summary.healthy, metrics.summary.warning, metrics.summary.critical
);
let title = "Storage".to_string();
let widget_status = if metrics.summary.critical > 0 {
StatusLevel::Error

View File

@@ -78,7 +78,7 @@ fn render_metrics(
memory_dataset.add_row(
Some(WidgetStatus::new(memory_status)),
vec![],
vec![format!("{:.1} / {:.1}", system_used, system_total)],
vec![format!("{:.1} / {:.1} GB", system_used / 1000.0, system_total / 1000.0)],
);
// CPU dataset
@@ -121,7 +121,7 @@ fn render_metrics(
let overall_status = Some(WidgetStatus::new(overall_status_level));
// Render all three datasets in a single combined widget
render_combined_widget_data(frame, area, "CPU / Memory".to_string(), overall_status, vec![memory_dataset, cpu_dataset, gpu_dataset]);
render_combined_widget_data(frame, area, "System".to_string(), overall_status, vec![memory_dataset, cpu_dataset, gpu_dataset]);
}
#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord)]