fix(inputs.upsd): Ensure firmware is always a string (#12486)

This commit is contained in:
Joshua Powers 2023-01-12 08:51:01 -07:00 committed by GitHub
parent 6f323eea64
commit b6b0b80b9a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 1 deletions

View File

@ -7,6 +7,7 @@ import (
"strings"
"github.com/influxdata/telegraf"
"github.com/influxdata/telegraf/internal"
"github.com/influxdata/telegraf/internal/choice"
"github.com/influxdata/telegraf/plugins/inputs"
nut "github.com/robbiet480/go.nut"
@ -83,10 +84,15 @@ func (u *Upsd) gatherUps(acc telegraf.Accumulator, name string, variables []nut.
"nominal_input_voltage": metrics["input.voltage.nominal"],
"nominal_battery_voltage": metrics["battery.voltage.nominal"],
"nominal_power": metrics["ups.realpower.nominal"],
"firmware": metrics["ups.firmware"],
"battery_date": metrics["battery.mfr.date"],
}
val, err := internal.ToString(metrics["ups.firmware"])
if err != nil {
acc.AddError(fmt.Errorf("converting ups.firmware=%v failed: %v", metrics["ups.firmware"], err))
}
fields["firmware"] = val
acc.AddFields("upsd", fields, tags)
}