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 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
71db59b005
commit
73fe73b04f
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user