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: