diff --git a/plugins/inputs/snmp_trap/netsnmp.go b/plugins/inputs/snmp_trap/netsnmp.go index 25a5ba3e0..ce06987e4 100644 --- a/plugins/inputs/snmp_trap/netsnmp.go +++ b/plugins/inputs/snmp_trap/netsnmp.go @@ -82,8 +82,10 @@ func (s *netsnmpTranslator) snmptranslate(oid string) (e snmp.MibEntry, err erro return e, nil } -func newNetsnmpTranslator() *netsnmpTranslator { +func newNetsnmpTranslator(timeout config.Duration) *netsnmpTranslator { return &netsnmpTranslator{ execCmd: realExecCmd, + cache: make(map[string]snmp.MibEntry), + Timeout: timeout, } } diff --git a/plugins/inputs/snmp_trap/snmp_trap.go b/plugins/inputs/snmp_trap/snmp_trap.go index 05cc7b319..e7b9d413f 100644 --- a/plugins/inputs/snmp_trap/snmp_trap.go +++ b/plugins/inputs/snmp_trap/snmp_trap.go @@ -17,6 +17,8 @@ import ( "github.com/influxdata/telegraf/plugins/inputs" ) +var defaultTimeout = config.Duration(time.Second * 5) + // DO NOT REMOVE THE NEXT TWO LINES! This is required to embed the sampleConfig data. //go:embed sample.conf var sampleConfig string @@ -68,6 +70,7 @@ func init() { return &SnmpTrap{ timeFunc: time.Now, ServiceAddress: "udp://:162", + Timeout: defaultTimeout, Path: []string{"/usr/share/snmp/mibs"}, Version: "2c", } @@ -87,7 +90,7 @@ func (s *SnmpTrap) Init() error { return err } case "netsnmp": - s.translator = newNetsnmpTranslator() + s.translator = newNetsnmpTranslator(s.Timeout) default: return fmt.Errorf("invalid translator value") }