From 409772d1fc9233d12cf66360c16a8fc1c3d69395 Mon Sep 17 00:00:00 2001 From: michaelchaen Date: Thu, 30 Apr 2026 03:41:08 +0800 Subject: [PATCH] Infiniband: add device name filter support for node_exporter infiniband collector Co-authored-by: Copilot Signed-off-by: michaelchaen --- sysfs/class_infiniband.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/sysfs/class_infiniband.go b/sysfs/class_infiniband.go index 4a893ae6..beee3975 100644 --- a/sysfs/class_infiniband.go +++ b/sysfs/class_infiniband.go @@ -138,7 +138,12 @@ type InfiniBandClass map[string]InfiniBandDevice // InfiniBandClass returns info for all InfiniBand devices read from // /sys/class/infiniband. -func (fs FS) InfiniBandClass() (InfiniBandClass, error) { +func (fs FS) InfiniBandClass(ignored ...func(string) bool) (InfiniBandClass, error) { + var ignoredFn func(string) bool + if len(ignored) > 0 { + ignoredFn = ignored[0] + } + path := fs.sys.Path(infinibandClassPath) dirs, err := os.ReadDir(path) @@ -148,6 +153,9 @@ func (fs FS) InfiniBandClass() (InfiniBandClass, error) { ibc := make(InfiniBandClass, len(dirs)) for _, d := range dirs { + if ignoredFn != nil && ignoredFn(d.Name()) { + continue + } device, err := fs.parseInfiniBandDevice(d.Name()) if err != nil { return nil, err