11package ifname
22
33import (
4+ "errors"
45 "fmt"
56 "strconv"
67 "sync"
@@ -192,13 +193,14 @@ func (d *IfName) invalidate(agent string) {
192193
193194func (d * IfName ) Start (acc telegraf.Accumulator ) error {
194195 var err error
195- d .ifTable , err = d .makeTable ("IF-MIB::ifDescr" )
196+
197+ d .ifTable , err = d .makeTable ("1.3.6.1.2.1.2.2.1.2" )
196198 if err != nil {
197- return fmt .Errorf ("looking up ifDescr in local MIB : %w " , err )
199+ return fmt .Errorf ("preparing ifTable : %v " , err )
198200 }
199- d .ifXTable , err = d .makeTable ("IF-MIB::ifName " )
201+ d .ifXTable , err = d .makeTable ("1.3.6.1.2.1.31.1.1.1.1 " )
200202 if err != nil {
201- return fmt .Errorf ("looking up ifName in local MIB : %w " , err )
203+ return fmt .Errorf ("preparing ifXTable : %v " , err )
202204 }
203205
204206 fn := func (m telegraf.Metric ) []telegraf.Metric {
@@ -307,11 +309,11 @@ func (d *IfName) getMapRemoteNoMock(agent string) (nameMap, error) {
307309 //try ifXtable and ifName first. if that fails, fall back to
308310 //ifTable and ifDescr
309311 var m nameMap
310- if m , err = buildMap (gs , d .ifXTable , "ifName" ); err == nil {
312+ if m , err = buildMap (gs , d .ifXTable ); err == nil {
311313 return m , nil
312314 }
313315
314- if m , err = buildMap (gs , d .ifTable , "ifDescr" ); err == nil {
316+ if m , err = buildMap (gs , d .ifTable ); err == nil {
315317 return m , nil
316318 }
317319
@@ -338,13 +340,13 @@ func init() {
338340 })
339341}
340342
341- func makeTableNoMock (fieldName string ) (* si.Table , error ) {
343+ func makeTableNoMock (oid string ) (* si.Table , error ) {
342344 var err error
343345 tab := si.Table {
344346 Name : "ifTable" ,
345347 IndexAsTag : true ,
346348 Fields : []si.Field {
347- {Oid : fieldName },
349+ {Oid : oid , Name : "ifName" },
348350 },
349351 }
350352
@@ -357,7 +359,7 @@ func makeTableNoMock(fieldName string) (*si.Table, error) {
357359 return & tab , nil
358360}
359361
360- func buildMap (gs snmp.GosnmpWrapper , tab * si.Table , column string ) (nameMap , error ) {
362+ func buildMap (gs snmp.GosnmpWrapper , tab * si.Table ) (nameMap , error ) {
361363 var err error
362364
363365 rtab , err := tab .Build (gs , true )
@@ -382,13 +384,13 @@ func buildMap(gs snmp.GosnmpWrapper, tab *si.Table, column string) (nameMap, err
382384 if err != nil {
383385 return nil , fmt .Errorf ("index tag isn't a uint" )
384386 }
385- nameIf , ok := v .Fields [column ]
387+ nameIf , ok := v .Fields ["ifName" ]
386388 if ! ok {
387- return nil , fmt . Errorf ( " field %s is missing", column )
389+ return nil , errors . New ( "ifName field is missing" )
388390 }
389391 name , ok := nameIf .(string )
390392 if ! ok {
391- return nil , fmt . Errorf ( " field %s isn't a string", column )
393+ return nil , errors . New ( "ifName field isn't a string" )
392394 }
393395
394396 t [i ] = name
0 commit comments