Don't walk the entire interface table to just retrieve one field (#9043)

This commit is contained in:
Thomas Casteleyn 2021-03-30 01:05:19 +02:00 committed by GitHub
parent 871447b22c
commit ffe92a7658
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 6 deletions

View File

@ -201,13 +201,13 @@ func (d *IfName) Start(acc telegraf.Accumulator) error {
return fmt.Errorf("parsing SNMP client config: %w", err) return fmt.Errorf("parsing SNMP client config: %w", err)
} }
d.ifTable, err = d.makeTable("IF-MIB::ifTable") d.ifTable, err = d.makeTable("IF-MIB::ifDescr")
if err != nil { if err != nil {
return fmt.Errorf("looking up ifTable in local MIB: %w", err) return fmt.Errorf("looking up ifDescr in local MIB: %w", err)
} }
d.ifXTable, err = d.makeTable("IF-MIB::ifXTable") d.ifXTable, err = d.makeTable("IF-MIB::ifName")
if err != nil { if err != nil {
return fmt.Errorf("looking up ifXTable in local MIB: %w", err) return fmt.Errorf("looking up ifName in local MIB: %w", err)
} }
fn := func(m telegraf.Metric) []telegraf.Metric { fn := func(m telegraf.Metric) []telegraf.Metric {
@ -347,11 +347,13 @@ func init() {
}) })
} }
func makeTableNoMock(tableName string) (*si.Table, error) { func makeTableNoMock(fieldName string) (*si.Table, error) {
var err error var err error
tab := si.Table{ tab := si.Table{
Oid: tableName,
IndexAsTag: true, IndexAsTag: true,
Fields: []si.Field{
{Oid: fieldName},
},
} }
err = tab.Init() err = tab.Init()