From 73fe73b04f8bec0a511bd92f64d01e15a56d89e7 Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Thu, 25 Jun 2026 10:47:04 -0500 Subject: [PATCH] fix(cron): parse discos array correctly for disk alert threshold checks The metrics JSON uses 'discos' (array) not 'disco' (single object), so disk alerts were never firing. Also reports per-mountpoint label. Co-Authored-By: Claude Sonnet 4.6 --- pkg/services/cron_service.go | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/pkg/services/cron_service.go b/pkg/services/cron_service.go index 16ec560..627bd46 100644 --- a/pkg/services/cron_service.go +++ b/pkg/services/cron_service.go @@ -251,14 +251,23 @@ func VerificarSaludServidores() { // 2. Recursos (CPU / RAM / Disco) al lĂ­mite if srv.MetricasJson != "" { var m struct { - CPU struct{ Porcentaje float64 `json:"porcentaje"` } `json:"cpu"` - RAM struct{ Porcentaje float64 `json:"porcentaje"` } `json:"ram"` - Disco struct{ Porcentaje float64 `json:"porcentaje"` } `json:"disco"` + CPU struct{ Porcentaje float64 `json:"porcentaje"` } `json:"cpu"` + RAM struct{ Porcentaje float64 `json:"porcentaje"` } `json:"ram"` + Discos []struct { + Porcentaje float64 `json:"porcentaje"` + Ruta string `json:"ruta"` + } `json:"discos"` } if jsonErr := json.Unmarshal([]byte(srv.MetricasJson), &m); jsonErr == nil { checkRecurso(srv.Nombre, "CPU", m.CPU.Porcentaje, cfg.UmbralCPU) checkRecurso(srv.Nombre, "RAM", m.RAM.Porcentaje, cfg.UmbralRAM) - checkRecurso(srv.Nombre, "Disco", m.Disco.Porcentaje, cfg.UmbralDisco) + for _, d := range m.Discos { + label := "Disco" + if d.Ruta != "" && d.Ruta != "/" { + label = "Disco " + d.Ruta + } + checkRecurso(srv.Nombre, label, d.Porcentaje, cfg.UmbralDisco) + } } }