From 9a95ef10cd4efdb734ec3ba8d02437e795c621b3 Mon Sep 17 00:00:00 2001 From: Ben Allen Date: Tue, 26 Sep 2023 05:03:39 -0400 Subject: [PATCH] fix(input.intel_pmt): Handle telem devices without numa_node attribute (#13977) --- plugins/inputs/intel_pmt/intel_pmt.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/plugins/inputs/intel_pmt/intel_pmt.go b/plugins/inputs/intel_pmt/intel_pmt.go index 84a19050c..15698fa0e 100644 --- a/plugins/inputs/intel_pmt/intel_pmt.go +++ b/plugins/inputs/intel_pmt/intel_pmt.go @@ -177,19 +177,21 @@ func (p *IntelPMT) explorePmtInSysfs() error { continue } - numaNodePath := filepath.Join(telemDirPath, "device", "numa_node") - numaNodeSymlink, err := filepath.EvalSymlinks(numaNodePath) + telemDevicePath := filepath.Join(telemDirPath, "device") + telemDeviceSymlink, err := filepath.EvalSymlinks(telemDevicePath) if err != nil { - return fmt.Errorf("error while evaluating symlink %q: %w", numaNodePath, err) + return fmt.Errorf("error while evaluating symlink %q: %w", telemDeviceSymlink, err) } - numaNode, err := os.ReadFile(numaNodeSymlink) + numaNodePath := filepath.Join(telemDeviceSymlink, "..", "numa_node") + + numaNode, err := os.ReadFile(numaNodePath) if err != nil { - return fmt.Errorf("error while reading symlink %q: %w", numaNodeSymlink, err) + return fmt.Errorf("error while reading numa_node file %q: %w", numaNodePath, err) } numaNodeString := strings.TrimSpace(string(numaNode)) if numaNodeString == "" { - return fmt.Errorf("numa_node file %q is empty", numaNodeSymlink) + return fmt.Errorf("numa_node file %q is empty", numaNodePath) } fi := fileInfo{