Remove nginx site accessibility filtering to monitor all sites
- Remove check_site_accessibility function and filtering logic - Monitor ALL nginx sites from config regardless of current status - Site status determined by measure_site_latency, not accessibility filter - Fixes missing git.cmtec.se when backend is down (502 errors) - Sites with errors now show as failed instead of being filtered out
This commit is contained in:
parent
0cb69ea8fa
commit
a64464142c
@ -986,21 +986,11 @@ impl ServiceCollector {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Check which sites are actually accessible
|
// Return all sites from nginx config (monitor all, regardless of current status)
|
||||||
let mut accessible_sites = Vec::new();
|
if sites.is_empty() {
|
||||||
for site in sites {
|
|
||||||
if self.check_site_accessibility(&site).await {
|
|
||||||
accessible_sites.push(site); // Remove checkmark - status will be shown via sub_service row status
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Limit to reasonable number
|
|
||||||
accessible_sites.truncate(15);
|
|
||||||
|
|
||||||
if accessible_sites.is_empty() {
|
|
||||||
None
|
None
|
||||||
} else {
|
} else {
|
||||||
Some(accessible_sites)
|
Some(sites)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1048,34 +1038,6 @@ impl ServiceCollector {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn check_site_accessibility(&self, hostname: &str) -> bool {
|
|
||||||
// Create HTTP client with same timeout as site latency checks
|
|
||||||
let client = match reqwest::Client::builder()
|
|
||||||
.timeout(Duration::from_secs(2))
|
|
||||||
.build()
|
|
||||||
{
|
|
||||||
Ok(client) => client,
|
|
||||||
Err(_) => return false,
|
|
||||||
};
|
|
||||||
|
|
||||||
// Try HTTPS first, then HTTP
|
|
||||||
for scheme in ["https", "http"] {
|
|
||||||
let url = format!("{}://{}", scheme, hostname);
|
|
||||||
|
|
||||||
match client.get(&url).send().await {
|
|
||||||
Ok(response) => {
|
|
||||||
let status = response.status().as_u16();
|
|
||||||
// Check for successful HTTP status codes (same logic as before)
|
|
||||||
if status == 200 || status == 301 || status == 302 || status == 403 {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Err(_) => continue,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
false
|
|
||||||
}
|
|
||||||
|
|
||||||
async fn get_nginx_description(&self) -> Option<String> {
|
async fn get_nginx_description(&self) -> Option<String> {
|
||||||
// Get site count and active connections
|
// Get site count and active connections
|
||||||
|
|||||||
@ -109,10 +109,17 @@ fn render_metrics(
|
|||||||
// Add latency information for nginx sites if available
|
// Add latency information for nginx sites if available
|
||||||
let service_name_with_latency = if let Some(parent) = &svc.sub_service {
|
let service_name_with_latency = if let Some(parent) = &svc.sub_service {
|
||||||
if parent == "nginx" {
|
if parent == "nginx" {
|
||||||
|
// Extract subdomain part for shorter display
|
||||||
|
let short_name = if let Some(dot_pos) = svc.name.find('.') {
|
||||||
|
&svc.name[..dot_pos]
|
||||||
|
} else {
|
||||||
|
&svc.name
|
||||||
|
};
|
||||||
|
|
||||||
match &svc.latency_ms {
|
match &svc.latency_ms {
|
||||||
Some(latency) if *latency >= 2000.0 => format!("{} → unreachable", svc.name), // Timeout (2s+)
|
Some(latency) if *latency >= 2000.0 => format!("{} → unreachable", short_name), // Timeout (2s+)
|
||||||
Some(latency) => format!("{} → {:.0}ms", svc.name, latency),
|
Some(latency) => format!("{} → {:.0}ms", short_name, latency),
|
||||||
None => format!("{} → unreachable", svc.name), // Connection failed
|
None => format!("{} → unreachable", short_name), // Connection failed
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
svc.name.clone()
|
svc.name.clone()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user