Merge pull request #2033 from jan--f/netclass-filter-before-parsing

netclass: retrieve interface names and filter before parsing
This commit is contained in:
Ben Kochie 2021-07-14 13:14:20 +02:00 committed by GitHub
commit 371c8e4bd0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -183,15 +183,21 @@ func pushMetric(ch chan<- prometheus.Metric, subsystem string, name string, valu
}
func (c *netClassCollector) getNetClassInfo() (sysfs.NetClass, error) {
netClass, err := c.fs.NetClass()
netClass := sysfs.NetClass{}
netDevices, err := c.fs.NetClassDevices()
if err != nil {
return netClass, err
}
for device := range netClass {
for _, device := range netDevices {
if c.ignoredDevicesPattern.MatchString(device) {
delete(netClass, device)
continue
}
interfaceClass, err := c.fs.NetClassByIface(device)
if err != nil {
return netClass, err
}
netClass[device] = *interfaceClass
}
return netClass, nil