From 123ee6e34f34b188093126b06be245225a6e679b Mon Sep 17 00:00:00 2001 From: Debian Date: Wed, 27 May 2026 18:48:04 +0200 Subject: [PATCH] fix(haproxy-stats): filter internal backends from stats response api_backend (management API) and rl_* (rate-limit stick-tables) were appearing in the dashboard's backend health card alongside customer backends. Skip these internal HAProxy proxy entries in the stats parser. Co-Authored-By: Claude Sonnet 4.6 --- VERSION | 2 +- cmd/edgeguard-api/main.go | 2 +- cmd/edgeguard-ctl/main.go | 2 +- cmd/edgeguard-scheduler/main.go | 2 +- internal/handlers/haproxy_stats.go | 6 ++++-- 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/VERSION b/VERSION index cb2493f..fdee0de 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.1.117 +1.1.118 diff --git a/cmd/edgeguard-api/main.go b/cmd/edgeguard-api/main.go index 577fffe..f5ba407 100644 --- a/cmd/edgeguard-api/main.go +++ b/cmd/edgeguard-api/main.go @@ -60,7 +60,7 @@ import ( usersvc "git.netcell-it.de/projekte/edgeguard-native/internal/services/users" ) -var version = "1.1.117" +var version = "1.1.118" func main() { addr := os.Getenv("EDGEGUARD_API_ADDR") diff --git a/cmd/edgeguard-ctl/main.go b/cmd/edgeguard-ctl/main.go index b98072d..145f487 100644 --- a/cmd/edgeguard-ctl/main.go +++ b/cmd/edgeguard-ctl/main.go @@ -11,7 +11,7 @@ import ( "git.netcell-it.de/projekte/edgeguard-native/internal/services/setup" ) -var version = "1.1.117" +var version = "1.1.118" const usage = `edgeguard-ctl — EdgeGuard CLI diff --git a/cmd/edgeguard-scheduler/main.go b/cmd/edgeguard-scheduler/main.go index fd6deec..17e80ca 100644 --- a/cmd/edgeguard-scheduler/main.go +++ b/cmd/edgeguard-scheduler/main.go @@ -41,7 +41,7 @@ import ( "git.netcell-it.de/projekte/edgeguard-native/internal/services/tlscerts" ) -var version = "1.1.117" +var version = "1.1.118" const ( // renewTickInterval — how often we re-evaluate expiring certs. diff --git a/internal/handlers/haproxy_stats.go b/internal/handlers/haproxy_stats.go index 4a043c7..4e7c41a 100644 --- a/internal/handlers/haproxy_stats.go +++ b/internal/handlers/haproxy_stats.go @@ -98,8 +98,10 @@ func (h *HAProxyStatsHandler) Stats(c *gin.Context) { svname := safeAt(fields, colIdx["svname"]) pxname := safeAt(fields, colIdx["pxname"]) - // Skip our internal stats listener and the BACKEND summary row. - if pxname == "internal_stats" || svname == "BACKEND" || svname == "" { + // Skip internal infrastructure rows and the BACKEND summary row. + // api_backend = management API; rl_* = rate-limit stick-tables (no servers). + if pxname == "internal_stats" || pxname == "api_backend" || + strings.HasPrefix(pxname, "rl_") || svname == "BACKEND" || svname == "" { continue }