Fix temperature sensors not reporting if any sensor lacks valid data (#167)

This commit is contained in:
Henry Dollman
2024-09-27 13:10:13 -04:00
parent 38a9c535b8
commit 82e3f3c7c1

View File

@@ -159,19 +159,26 @@ func (a *Agent) getSystemStats() (system.Info, system.Stats) {
} }
// temperatures // temperatures
if temps, err := sensors.TemperaturesWithContext(a.sensorsContext); err == nil { temps, err := sensors.TemperaturesWithContext(a.sensorsContext)
if err != nil && a.debug {
err.(*sensors.Warnings).Verbose = true
slog.Debug("Sensor error", "errs", err)
}
if len(temps) > 0 {
slog.Debug("Temperatures", "data", temps) slog.Debug("Temperatures", "data", temps)
systemStats.Temperatures = make(map[string]float64) systemStats.Temperatures = make(map[string]float64)
for i, temp := range temps { for i, sensor := range temps {
if _, ok := systemStats.Temperatures[temp.SensorKey]; ok { // skip if temperature is 0
if sensor.Temperature == 0 {
continue
}
if _, ok := systemStats.Temperatures[sensor.SensorKey]; ok {
// if key already exists, append int to key // if key already exists, append int to key
systemStats.Temperatures[temp.SensorKey+"_"+strconv.Itoa(i)] = twoDecimals(temp.Temperature) systemStats.Temperatures[sensor.SensorKey+"_"+strconv.Itoa(i)] = twoDecimals(sensor.Temperature)
} else { } else {
systemStats.Temperatures[temp.SensorKey] = twoDecimals(temp.Temperature) systemStats.Temperatures[sensor.SensorKey] = twoDecimals(sensor.Temperature)
} }
} }
} else {
slog.Debug("Error getting temperatures", "err", err)
} }
systemInfo := system.Info{ systemInfo := system.Info{