Fix thermal_zone collector noise

Add a check for missing/unreadable thermal zone stats and ignore if not
availlable.

Fixes: https://github.com/prometheus/node_exporter/issues/2552

Signed-off-by: Ben Kochie <superq@gmail.com>
This commit is contained in:
Ben Kochie 2022-12-22 12:07:37 +01:00
parent 4484f18566
commit efa7f24698
No known key found for this signature in database
GPG Key ID: C646B23C9E3245F1

View File

@ -17,9 +17,12 @@
package collector
import (
"errors"
"fmt"
"os"
"github.com/go-kit/log"
"github.com/go-kit/log/level"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/procfs/sysfs"
)
@ -70,6 +73,10 @@ func NewThermalZoneCollector(logger log.Logger) (Collector, error) {
func (c *thermalZoneCollector) Update(ch chan<- prometheus.Metric) error {
thermalZones, err := c.fs.ClassThermalZoneStats()
if err != nil {
if errors.Is(err, os.ErrNotExist) || errors.Is(err, os.ErrPermission) || errors.Is(err, os.ErrInvalid) {
level.Debug(c.logger).Log("msg", "Could not read thermal zone stats", "err", err)
return ErrNoData
}
return err
}