@cryptotaxi247 / netdata / commits / 71adf9812

improve(go.d/snmp): log device profiles matched by sysObjectID (#20524)

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

Ilya Mashchenko committed Jun 19, 2025 at 09:58 UTC 71adf9812712dc585f58d3e022614f8cd8e0f837
1 file changed +15 -1
src/go/plugin/go.d/collector/snmp/collect.go
+15 -1
@@ -5,7 +5,9 @@ package snmp
5 import (
6 "errors"
7 "fmt"
8 + "path/filepath"
9 "slices"
10 + "strings"
11
12 "github.com/google/uuid"
13 "github.com/gosnmp/gosnmp"
@@ -30,7 +32,7 @@ func (c *Collector) collect() (map[string]int64, error) {
32 }
33
34 if c.EnableProfiles {
33 - c.snmpProfiles = ddsnmp.FindProfiles(c.sysInfo.SysObjectID)
35 + c.snmpProfiles = c.setupProfiles()
36 }
37 }
38
@@ -118,6 +120,18 @@ func (c *Collector) setupVnode(si *snmpsd.SysInfo) *vnodes.VirtualNode {
120 }
121 }
122
123 +func (c *Collector) setupProfiles() []*ddsnmp.Profile {
124 + snmpProfiles := ddsnmp.FindProfiles(c.sysInfo.SysObjectID)
125 + var names []string
126 + for _, prof := range snmpProfiles {
127 + name := strings.TrimSuffix(filepath.Base(prof.SourceFile), filepath.Ext(prof.SourceFile))
128 + names = append(names, name)
129 + }
130 + c.Infof("device matched %d profile(s): %s (sysObjectID: %s)",
131 + len(snmpProfiles), strings.Join(names, ", "), c.sysInfo.SysObjectID)
132 + return snmpProfiles
133 +}
134 +
135 func pduToInt(pdu gosnmp.SnmpPDU) (int64, error) {
136 switch pdu.Type {
137 case gosnmp.Counter32, gosnmp.Counter64, gosnmp.Integer, gosnmp.Gauge32, gosnmp.TimeTicks: