This commit is contained in:
2025-10-13 08:31:18 +02:00
parent 3de1e0db19
commit 5e8a0ce108
4 changed files with 33 additions and 231 deletions

View File

@@ -336,7 +336,7 @@ impl App {
fn check_host_timeouts(&mut self) {
let now = Utc::now();
for (host_name, state) in self.host_states.iter_mut() {
for (_host_name, state) in self.host_states.iter_mut() {
if let Some(last_success) = state.last_success {
let duration_since_last = now.signed_duration_since(last_success);

View File

@@ -69,12 +69,42 @@ fn render_metrics(
return;
}
let mut services = metrics.services.clone();
services.sort_by(|a, b| {
// Sort services but preserve nginx + sites grouping
let mut services = Vec::new();
let mut regular_services = Vec::new();
let mut nginx_group = Vec::new();
let mut in_nginx_group = false;
for svc in metrics.services.iter() {
if svc.name == "nginx" {
// Start nginx group
in_nginx_group = true;
nginx_group.push(svc.clone());
} else if in_nginx_group && svc.sub_service {
// Add nginx site to group
nginx_group.push(svc.clone());
} else {
// End nginx group if we were in one
if in_nginx_group {
in_nginx_group = false;
services.append(&mut nginx_group);
}
regular_services.push(svc.clone());
}
}
// Add any remaining nginx group
if !nginx_group.is_empty() {
services.append(&mut nginx_group);
}
// Sort regular services and add them
regular_services.sort_by(|a, b| {
status_weight(&a.status)
.cmp(&status_weight(&b.status))
.then_with(|| a.name.cmp(&b.name))
});
services.append(&mut regular_services);
for svc in services {
let status_level = match svc.status {

View File

@@ -166,9 +166,3 @@ fn format_optional_metric(value: Option<f32>, unit: &str) -> String {
}
}
fn format_optional_percent(value: Option<f32>) -> String {
match value {
Some(number) => format!("{:.0}%", number),
None => "".to_string(),
}
}