This commit is contained in:
Mateusz Gruszczyński committed 2026-10-08 22:22:46 +02:00
1 parent 76cb4acef0
commit 68678e98be
84 files changed
+1519 -325

No files matched your search

+1
View File
@@ -428,6 +428,7 @@ fn render_vhosts(snapshot: &crate::config::Snapshot, f: &mut Families) {
counter.load(Ordering::Relaxed),
);
}
}
}
}
+1
View File
@@ -239,6 +239,7 @@ pub fn render(app: &App) -> String {
render_core(app, &snapshot, &mut out, &mut families);
render_vhosts(&snapshot, &mut families);
render_traffic(app, &snapshot, &mut families);
render_web_php(&snapshot, &mut families);
render_backends(&snapshot, &docker_targets, &mut families);
render_docker(&snapshot, &docker_targets, &mut families);
render_misc(app, &snapshot, &mut families);
+28
View File
@@ -0,0 +1,28 @@
fn render_web_php(snapshot: &crate::config::Snapshot, f: &mut Families) {
let config = &snapshot.envelope.config;
for service in &config.web_services {
let Some(compiled) = snapshot.web_php_services.get(&service.id) else { continue };
let web = &compiled.web_metrics;
let wl = labels(&[("web_service", service.id.as_str())]);
f.add("rust_proxy_web_server_requests_total", "counter", "Web Server requests completed through response headers, including PHP requests.", &wl, web.requests.load(Ordering::Relaxed));
for (class, count) in [
("2xx", &web.status_2xx), ("3xx", &web.status_3xx),
("4xx", &web.status_4xx), ("5xx", &web.status_5xx),
] {
f.add("rust_proxy_web_server_responses_total", "counter", "Web Server responses by status class.", &format!("{wl},class=\"{class}\""), count.load(Ordering::Relaxed));
}
f.add("rust_proxy_web_server_response_header_duration_microseconds_total", "counter", "Web Server response header latency, excluding streamed body transfer.", &wl, web.response_headers_us.load(Ordering::Relaxed));
let Some(php) = &compiled.php else { continue };
let l = labels(&[("web_service", service.id.as_str())]);
let m = &php.metrics;
f.add("rust_proxy_php_requests_total", "counter", "PHP-FPM requests completed through response headers.", &l, m.requests.load(Ordering::Relaxed));
for (class, count) in [
("2xx", &m.status_2xx), ("3xx", &m.status_3xx),
("4xx", &m.status_4xx), ("5xx", &m.status_5xx),
] {
f.add("rust_proxy_php_responses_total", "counter", "PHP response headers by status class.", &format!("{l},class=\"{class}\""), count.load(Ordering::Relaxed));
}
f.add("rust_proxy_php_response_header_duration_microseconds_total", "counter", "Cumulative PHP response header latency in microseconds, excluding streamed body time.", &l, m.response_headers_us.load(Ordering::Relaxed));
f.add("rust_proxy_php_concurrency_available", "gauge", "Available PHP-FPM request permits in this Web Service.", &l, php.permits.available_permits());
}
}