SNMP plugin fixes

fixes #873
This commit is contained in:
Thibault Cohen 2016-03-21 20:10:17 -04:00 committed by Cameron Sparr
parent 51d7724255
commit a95710ed0c
3 changed files with 9 additions and 10 deletions

View File

@ -20,6 +20,7 @@
- [#656](https://github.com/influxdata/telegraf/issues/656): No longer run `lsof` on linux to get netstat data, fixes permissions issue. - [#656](https://github.com/influxdata/telegraf/issues/656): No longer run `lsof` on linux to get netstat data, fixes permissions issue.
- [#907](https://github.com/influxdata/telegraf/issues/907): Fix prometheus invalid label/measurement name key. - [#907](https://github.com/influxdata/telegraf/issues/907): Fix prometheus invalid label/measurement name key.
- [#841](https://github.com/influxdata/telegraf/issues/841): Fix memcached unix socket panic. - [#841](https://github.com/influxdata/telegraf/issues/841): Fix memcached unix socket panic.
- [#873](https://github.com/influxdata/telegraf/issues/873): Fix SNMP plugin sometimes not returning metrics. Thanks @titiliambert!
## v0.11.1 [2016-03-17] ## v0.11.1 [2016-03-17]

View File

@ -492,12 +492,12 @@ Note: the plugin will add instance name as tag *instance*
# oid attribute is useless # oid attribute is useless
# SNMP SUBTABLES # SNMP SUBTABLES
[[plugins.snmp.subtable]] [[inputs.snmp.subtable]]
name = "bytes_recv" name = "bytes_recv"
oid = ".1.3.6.1.2.1.31.1.1.1.6" oid = ".1.3.6.1.2.1.31.1.1.1.6"
unit = "octets" unit = "octets"
[[plugins.snmp.subtable]] [[inputs.snmp.subtable]]
name = "bytes_send" name = "bytes_send"
oid = ".1.3.6.1.2.1.31.1.1.1.10" oid = ".1.3.6.1.2.1.31.1.1.1.10"
unit = "octets" unit = "octets"
@ -505,10 +505,10 @@ Note: the plugin will add instance name as tag *instance*
#### Configuration notes #### Configuration notes
- In **plugins.snmp.table** section, the `oid` attribute is useless if - In **inputs.snmp.table** section, the `oid` attribute is useless if
the `sub_tables` attributes is defined the `sub_tables` attributes is defined
- In **plugins.snmp.subtable** section, you can put a name from `snmptranslate_file` - In **inputs.snmp.subtable** section, you can put a name from `snmptranslate_file`
as `oid` attribute instead of a valid OID as `oid` attribute instead of a valid OID
### Measurements & Fields: ### Measurements & Fields:

View File

@ -4,7 +4,6 @@ import (
"io/ioutil" "io/ioutil"
"log" "log"
"net" "net"
"regexp"
"strconv" "strconv"
"strings" "strings"
"time" "time"
@ -308,11 +307,10 @@ func (s *Snmp) Gather(acc telegraf.Accumulator) error {
return err return err
} else { } else {
for _, line := range strings.Split(string(data), "\n") { for _, line := range strings.Split(string(data), "\n") {
oidsRegEx := regexp.MustCompile(`([^\t]*)\t*([^\t]*)`) oids := strings.Fields(string(line))
oids := oidsRegEx.FindStringSubmatch(string(line)) if len(oids) == 2 && oids[1] != "" {
if oids[2] != "" { oid_name := oids[0]
oid_name := oids[1] oid := oids[1]
oid := oids[2]
fillnode(s.initNode, oid_name, strings.Split(string(oid), ".")) fillnode(s.initNode, oid_name, strings.Split(string(oid), "."))
s.nameToOid[oid_name] = oid s.nameToOid[oid_name] = oid
} }