From 4a78ce1b163e5d440e40177b9a0f040295433905 Mon Sep 17 00:00:00 2001 From: Henry Dollman Date: Wed, 23 Oct 2024 18:37:38 -0400 Subject: [PATCH] skip temperatures code if sensors whitelist is set to empty string --- beszel/internal/agent/system.go | 54 +++++++++++++++++---------------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/beszel/internal/agent/system.go b/beszel/internal/agent/system.go index b451151..854bd93 100644 --- a/beszel/internal/agent/system.go +++ b/beszel/internal/agent/system.go @@ -171,33 +171,35 @@ func (a *Agent) getSystemStats() system.Stats { } } - // temperatures - temps, err := sensors.TemperaturesWithContext(a.sensorsContext) - if err != nil { - // err.(*sensors.Warnings).Verbose = true - slog.Debug("Sensor error", "err", err) - } - slog.Debug("Temperature", "sensors", temps) - if len(temps) > 0 { - systemStats.Temperatures = make(map[string]float64, len(temps)) - for i, sensor := range temps { - // skip if temperature is 0 - if sensor.Temperature <= 0 || sensor.Temperature >= 200 { - continue - } - if _, ok := systemStats.Temperatures[sensor.SensorKey]; ok { - // if key already exists, append int to key - systemStats.Temperatures[sensor.SensorKey+"_"+strconv.Itoa(i)] = twoDecimals(sensor.Temperature) - } else { - systemStats.Temperatures[sensor.SensorKey] = twoDecimals(sensor.Temperature) - } + // temperatures (skip if sensors whitelist is set to empty string) + if a.sensorsWhitelist == nil || len(a.sensorsWhitelist) > 0 { + temps, err := sensors.TemperaturesWithContext(a.sensorsContext) + if err != nil { + // err.(*sensors.Warnings).Verbose = true + slog.Debug("Sensor error", "err", err) } - // remove sensors from systemStats if whitelist exists and sensor is not in whitelist - // (do this here instead of in initial loop so we have correct keys if int was appended) - if a.sensorsWhitelist != nil { - for key := range systemStats.Temperatures { - if _, nameInWhitelist := a.sensorsWhitelist[key]; !nameInWhitelist { - delete(systemStats.Temperatures, key) + slog.Debug("Temperature", "sensors", temps) + if len(temps) > 0 { + systemStats.Temperatures = make(map[string]float64, len(temps)) + for i, sensor := range temps { + // skip if temperature is 0 + if sensor.Temperature <= 0 || sensor.Temperature >= 200 { + continue + } + if _, ok := systemStats.Temperatures[sensor.SensorKey]; ok { + // if key already exists, append int to key + systemStats.Temperatures[sensor.SensorKey+"_"+strconv.Itoa(i)] = twoDecimals(sensor.Temperature) + } else { + systemStats.Temperatures[sensor.SensorKey] = twoDecimals(sensor.Temperature) + } + } + // remove sensors from systemStats if whitelist exists and sensor is not in whitelist + // (do this here instead of in initial loop so we have correct keys if int was appended) + if a.sensorsWhitelist != nil { + for key := range systemStats.Temperatures { + if _, nameInWhitelist := a.sensorsWhitelist[key]; !nameInWhitelist { + delete(systemStats.Temperatures, key) + } } } }