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
1 changed files with 9 additions and 3 deletions

View File

@ -183,15 +183,21 @@ func pushMetric(ch chan<- prometheus.Metric, subsystem string, name string, valu
} }
func (c *netClassCollector) getNetClassInfo() (sysfs.NetClass, error) { func (c *netClassCollector) getNetClassInfo() (sysfs.NetClass, error) {
netClass, err := c.fs.NetClass() netClass := sysfs.NetClass{}
netDevices, err := c.fs.NetClassDevices()
if err != nil { if err != nil {
return netClass, err return netClass, err
} }
for device := range netClass { for _, device := range netDevices {
if c.ignoredDevicesPattern.MatchString(device) { 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 return netClass, nil