Browse Source

Add include and exclude filter for hwmon collector (#2699)

* Add include and exclude flags chip name flags to hwmon collector, following example in systemd collector

---------

Signed-off-by: Conall O'Brien <conall@conall.net>
Co-authored-by: Ben Kochie <superq@gmail.com>
pull/2740/head^2
Conall O'Brien 1 year ago committed by GitHub
parent
commit
8b4dc82488
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 17
      collector/hwmon_linux.go

17
collector/hwmon_linux.go

@ -24,6 +24,7 @@ import (
"strconv"
"strings"
"github.com/alecthomas/kingpin/v2"
"github.com/go-kit/log"
"github.com/go-kit/log/level"
"github.com/prometheus/client_golang/prometheus"
@ -31,6 +32,9 @@ import (
)
var (
collectorHWmonChipInclude = kingpin.Flag("collector.hwmon.chip-include", "Regexp of hwmon chip to include (mutually exclusive to device-exclude).").String()
collectorHWmonChipExclude = kingpin.Flag("collector.hwmon.chip-exclude", "Regexp of hwmon chip to exclude (mutually exclusive to device-include).").String()
hwmonInvalidMetricChars = regexp.MustCompile("[^a-z0-9:_]")
hwmonFilenameFormat = regexp.MustCompile(`^(?P<type>[^0-9]+)(?P<id>[0-9]*)?(_(?P<property>.+))?$`)
hwmonLabelDesc = []string{"chip", "sensor"}
@ -47,13 +51,18 @@ func init() {
}
type hwMonCollector struct {
logger log.Logger
deviceFilter deviceFilter
logger log.Logger
}
// NewHwMonCollector returns a new Collector exposing /sys/class/hwmon stats
// (similar to lm-sensors).
func NewHwMonCollector(logger log.Logger) (Collector, error) {
return &hwMonCollector{logger}, nil
return &hwMonCollector{
logger: logger,
deviceFilter: newDeviceFilter(*collectorHWmonChipExclude, *collectorHWmonChipExclude),
}, nil
}
func cleanMetricName(name string) string {
@ -154,6 +163,10 @@ func (c *hwMonCollector) updateHwmon(ch chan<- prometheus.Metric, dir string) er
return err
}
if c.deviceFilter.ignored(hwmonName) {
return nil
}
data := make(map[string]map[string]string)
err = collectSensorData(dir, data)
if err != nil {

Loading…
Cancel
Save