skip temperatures code if sensors whitelist is set to empty string

This commit is contained in:
Henry Dollman
2024-10-23 18:37:38 -04:00
parent f8f1e01cb4
commit 4a78ce1b16

View File

@@ -171,33 +171,35 @@ func (a *Agent) getSystemStats() system.Stats {
} }
} }
// temperatures // temperatures (skip if sensors whitelist is set to empty string)
temps, err := sensors.TemperaturesWithContext(a.sensorsContext) if a.sensorsWhitelist == nil || len(a.sensorsWhitelist) > 0 {
if err != nil { temps, err := sensors.TemperaturesWithContext(a.sensorsContext)
// err.(*sensors.Warnings).Verbose = true if err != nil {
slog.Debug("Sensor error", "err", err) // 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)
}
} }
// remove sensors from systemStats if whitelist exists and sensor is not in whitelist slog.Debug("Temperature", "sensors", temps)
// (do this here instead of in initial loop so we have correct keys if int was appended) if len(temps) > 0 {
if a.sensorsWhitelist != nil { systemStats.Temperatures = make(map[string]float64, len(temps))
for key := range systemStats.Temperatures { for i, sensor := range temps {
if _, nameInWhitelist := a.sensorsWhitelist[key]; !nameInWhitelist { // skip if temperature is 0
delete(systemStats.Temperatures, key) 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)
}
} }
} }
} }