From 9fc567dc2e3b8e1be81fb657e8cc28e709dbff2b Mon Sep 17 00:00:00 2001 From: rcourtman Date: Tue, 2 Dec 2025 15:35:32 +0000 Subject: [PATCH] perf: Cache lowercase RAID state in alerts processing Compute strings.ToLower(array.State) once and reuse stateLower instead of calling ToLower three times when checking RAID array status. --- internal/alerts/alerts.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/internal/alerts/alerts.go b/internal/alerts/alerts.go index 075f82b..cddd388 100644 --- a/internal/alerts/alerts.go +++ b/internal/alerts/alerts.go @@ -2475,9 +2475,10 @@ func (m *Manager) CheckHost(host models.Host) { } // Check for degraded or failed arrays - isDegraded := strings.Contains(strings.ToLower(array.State), "degraded") || array.FailedDevices > 0 - isRebuilding := strings.Contains(strings.ToLower(array.State), "recover") || - strings.Contains(strings.ToLower(array.State), "resync") || + stateLower := strings.ToLower(array.State) + isDegraded := strings.Contains(stateLower, "degraded") || array.FailedDevices > 0 + isRebuilding := strings.Contains(stateLower, "recover") || + strings.Contains(stateLower, "resync") || array.RebuildPercent > 0 alertID := fmt.Sprintf("host-%s-raid-%s", host.ID, sanitizeRAIDDevice(array.Device))