diff --git a/plugins/parsers/influx/parser_test.go b/plugins/parsers/influx/parser_test.go index 594e6b766..a885a7712 100644 --- a/plugins/parsers/influx/parser_test.go +++ b/plugins/parsers/influx/parser_test.go @@ -282,7 +282,7 @@ var ptests = []struct { "cpu", map[string]string{}, map[string]interface{}{ - "value": 9223372036854775807, + "value": int64(9223372036854775807), }, time.Unix(42, 0), ), diff --git a/plugins/serializers/influx/influx.go b/plugins/serializers/influx/influx.go index 926bfcb34..819701c2e 100644 --- a/plugins/serializers/influx/influx.go +++ b/plugins/serializers/influx/influx.go @@ -12,7 +12,7 @@ import ( "github.com/influxdata/telegraf" ) -const MaxInt = int(^uint(0) >> 1) +const MaxInt64 = int64(^uint64(0) >> 1) type FieldSortOrder int @@ -270,10 +270,10 @@ func (s *Serializer) appendFieldValue(buf []byte, value interface{}) ([]byte, er if s.fieldTypeSupport&UintSupport != 0 { return appendUintField(buf, v), nil } else { - if v <= uint64(MaxInt) { + if v <= uint64(MaxInt64) { return appendIntField(buf, int64(v)), nil } else { - return appendIntField(buf, int64(MaxInt)), nil + return appendIntField(buf, int64(MaxInt64)), nil } } case int64: diff --git a/plugins/serializers/influx/influx_test.go b/plugins/serializers/influx/influx_test.go index 655e9aaf9..dca56dcf7 100644 --- a/plugins/serializers/influx/influx_test.go +++ b/plugins/serializers/influx/influx_test.go @@ -129,6 +129,20 @@ var tests = []struct { ), output: []byte("cpu value=42i 0\n"), }, + { + name: "integer field 64-bit", + input: MustMetric( + metric.New( + "cpu", + map[string]string{}, + map[string]interface{}{ + "value": int64(123456789012345), + }, + time.Unix(0, 0), + ), + ), + output: []byte("cpu value=123456789012345i 0\n"), + }, { name: "uint field", input: MustMetric(