Fix conversion of unsigned ints in prometheus output (#3978)
This commit is contained in:
parent
cf49ed3b93
commit
7bfcd87e83
|
@ -352,6 +352,8 @@ func (p *PrometheusClient) Write(metrics []telegraf.Metric) error {
|
|||
switch fv := fv.(type) {
|
||||
case int64:
|
||||
value = float64(fv)
|
||||
case uint64:
|
||||
value = float64(fv)
|
||||
case float64:
|
||||
value = fv
|
||||
default:
|
||||
|
@ -391,6 +393,8 @@ func (p *PrometheusClient) Write(metrics []telegraf.Metric) error {
|
|||
switch fv := fv.(type) {
|
||||
case int64:
|
||||
value = float64(fv)
|
||||
case uint64:
|
||||
value = float64(fv)
|
||||
case float64:
|
||||
value = fv
|
||||
default:
|
||||
|
@ -427,6 +431,8 @@ func (p *PrometheusClient) Write(metrics []telegraf.Metric) error {
|
|||
switch fv := fv.(type) {
|
||||
case int64:
|
||||
value = float64(fv)
|
||||
case uint64:
|
||||
value = float64(fv)
|
||||
case float64:
|
||||
value = fv
|
||||
default:
|
||||
|
|
|
@ -151,6 +151,16 @@ func TestWrite_Counters(t *testing.T) {
|
|||
metricName: "foo_other",
|
||||
valueType: telegraf.Counter,
|
||||
},
|
||||
{
|
||||
name: "uint64 fields are output",
|
||||
args: args{
|
||||
measurement: "foo",
|
||||
fields: map[string]interface{}{"value": uint64(42)},
|
||||
valueType: telegraf.Counter,
|
||||
},
|
||||
metricName: "foo",
|
||||
valueType: telegraf.Counter,
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
|
@ -239,6 +249,16 @@ func TestWrite_Gauge(t *testing.T) {
|
|||
metricName: "foo_other",
|
||||
valueType: telegraf.Gauge,
|
||||
},
|
||||
{
|
||||
name: "uint64 fields are output",
|
||||
args: args{
|
||||
measurement: "foo",
|
||||
fields: map[string]interface{}{"value": uint64(42)},
|
||||
valueType: telegraf.Counter,
|
||||
},
|
||||
metricName: "foo",
|
||||
valueType: telegraf.Counter,
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
|
|
Loading…
Reference in New Issue