diff --git a/CHANGELOG.md b/CHANGELOG.md index d69321427..e9ff74b46 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ - [#1791](https://github.com/influxdata/telegraf/pull/1791): Add Docker container state metrics to Docker input plugin output - [#1755](https://github.com/influxdata/telegraf/issues/1755): Add support to SNMP for IP & MAC address conversion. - [#1729](https://github.com/influxdata/telegraf/issues/1729): Add support to SNMP for OID index suffixes. +- [#1813](https://github.com/influxdata/telegraf/pull/1813): Change default arguments for SNMP plugin. ### Bugfixes diff --git a/plugins/inputs/snmp/snmp.go b/plugins/inputs/snmp/snmp.go index 254a454a2..b563fbbf8 100644 --- a/plugins/inputs/snmp/snmp.go +++ b/plugins/inputs/snmp/snmp.go @@ -20,25 +20,29 @@ import ( const description = `Retrieves SNMP values from remote agents` const sampleConfig = ` agents = [ "127.0.0.1:161" ] + ## Timeout for each SNMP query. timeout = "5s" + ## Number of retries to attempt within timeout. + retries = 3 + ## SNMP version, values can be 1, 2, or 3 version = 2 - # SNMPv1 & SNMPv2 parameters + ## SNMP community string. community = "public" - # SNMPv2 & SNMPv3 parameters - max_repetitions = 50 + ## The GETBULK max-repetitions parameter + max_repetitions = 10 - # SNMPv3 parameters + ## SNMPv3 auth parameters #sec_name = "myuser" - #auth_protocol = "md5" # Values: "MD5", "SHA", "" - #auth_password = "password123" - #sec_level = "authNoPriv" # Values: "noAuthNoPriv", "authNoPriv", "authPriv" + #auth_protocol = "md5" # Values: "MD5", "SHA", "" + #auth_password = "pass" + #sec_level = "authNoPriv" # Values: "noAuthNoPriv", "authNoPriv", "authPriv" #context_name = "" - #priv_protocol = "" # Values: "DES", "AES", "" + #priv_protocol = "" # Values: "DES", "AES", "" #priv_password = "" - # measurement name + ## measurement name name = "system" [[inputs.snmp.field]] name = "hostname" @@ -53,7 +57,7 @@ const sampleConfig = ` oid = "HOST-RESOURCES-MIB::hrMemorySize" [[inputs.snmp.table]] - # measurement name + ## measurement name name = "remote_servers" inherit_tags = [ "hostname" ] [[inputs.snmp.table.field]] @@ -68,7 +72,7 @@ const sampleConfig = ` oid = ".1.0.0.0.1.2" [[inputs.snmp.table]] - # auto populate table's fields using the MIB + ## auto populate table's fields using the MIB oid = "HOST-RESOURCES-MIB::hrNetworkTable" ` @@ -105,7 +109,7 @@ type Snmp struct { Community string // Parameters for Version 2 & 3 - MaxRepetitions uint + MaxRepetitions int // Parameters for Version 3 ContextName string @@ -340,8 +344,8 @@ func Errorf(err error, msg string, format ...interface{}) error { func init() { inputs.Add("snmp", func() telegraf.Input { return &Snmp{ - Retries: 5, - MaxRepetitions: 50, + Retries: 3, + MaxRepetitions: 10, Timeout: internal.Duration{Duration: 5 * time.Second}, Version: 2, Community: "public", @@ -638,7 +642,7 @@ func (s *Snmp) getConnection(agent string) (snmpConnection, error) { } } - gs.MaxRepetitions = int(s.MaxRepetitions) + gs.MaxRepetitions = s.MaxRepetitions if s.Version == 3 { gs.ContextName = s.ContextName diff --git a/plugins/inputs/snmp/snmp_test.go b/plugins/inputs/snmp/snmp_test.go index 0272253c8..45ba76815 100644 --- a/plugins/inputs/snmp/snmp_test.go +++ b/plugins/inputs/snmp/snmp_test.go @@ -91,7 +91,8 @@ func TestSampleConfig(t *testing.T) { Timeout: internal.Duration{Duration: 5 * time.Second}, Version: 2, Community: "public", - MaxRepetitions: 50, + MaxRepetitions: 10, + Retries: 3, Name: "system", Fields: []Field{ @@ -147,7 +148,6 @@ func TestFieldInit(t *testing.T) { } assert.Equal(t, txl.expectedOid, f.Oid, "inputOid='%s' inputName='%s' inputConversion='%s'", txl.inputOid, txl.inputName, txl.inputConversion) assert.Equal(t, txl.expectedName, f.Name, "inputOid='%s' inputName='%s' inputConversion='%s'", txl.inputOid, txl.inputName, txl.inputConversion) - assert.Equal(t, txl.expectedConversion, f.Conversion, "inputOid='%s' inputName='%s' inputConversion='%s'", txl.inputOid, txl.inputName, txl.inputConversion) } }