fix(parsers.avro): Do not force addition of timestamp as a field (#13856)

This commit is contained in:
Adam Thornton 2023-09-11 07:05:40 -07:00 committed by GitHub
parent 84b3b587da
commit 855b25d383
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 5 additions and 29 deletions

View File

@ -172,24 +172,6 @@ func (p *Parser) createMetric(data map[string]interface{}, schema string) (teleg
// If you have specified your fields in the config, you // If you have specified your fields in the config, you
// get what you asked for. // get what you asked for.
fieldList = p.Fields fieldList = p.Fields
// Except...if you specify the timestamp field, and it's
// not listed in your fields, you'll get it anyway.
// This will randomize your field ordering, which isn't
// ideal. If you care, list the timestamp field.
if p.Timestamp != "" {
// quick list-to-set-to-list implementation
fieldSet := make(map[string]bool)
for k := range fieldList {
fieldSet[fieldList[k]] = true
}
fieldSet[p.Timestamp] = true
var newList []string
for s := range fieldSet {
newList = append(newList, s)
}
fieldList = newList
}
} else { } else {
for k := range data { for k := range data {
// Otherwise, that which is not a tag is a field // Otherwise, that which is not a tag is a field
@ -255,7 +237,7 @@ func (p *Parser) createMetric(data map[string]interface{}, schema string) (teleg
} }
var timestamp time.Time var timestamp time.Time
if p.Timestamp != "" { if p.Timestamp != "" {
rawTime := fmt.Sprintf("%v", fields[p.Timestamp]) rawTime := fmt.Sprintf("%v", data[p.Timestamp])
var err error var err error
timestamp, err = internal.ParseTimestamp(p.TimestampFormat, rawTime, nil) timestamp, err = internal.ParseTimestamp(p.TimestampFormat, rawTime, nil)
if err != nil { if err != nil {

View File

@ -4,4 +4,4 @@
"up_time": 1166984904, "up_time": 1166984904,
"cpu_utilization": 14.0, "cpu_utilization": 14.0,
"memory_utilization": 20.0 "memory_utilization": 20.0
} }

View File

@ -5,7 +5,7 @@
avro_format = "json" avro_format = "json"
avro_measurement = "Switch" avro_measurement = "Switch"
avro_tags = ["switch_wwn"] avro_tags = ["switch_wwn"]
avro_fields = ["up_time", "cpu_utilization", "memory_utilization"] avro_fields = ["up_time", "cpu_utilization", "memory_utilization", "statistics_collection_time"]
avro_timestamp = "statistics_collection_time" avro_timestamp = "statistics_collection_time"
avro_timestamp_format = "unix_ms" avro_timestamp_format = "unix_ms"
avro_schema = ''' avro_schema = '''
@ -22,4 +22,4 @@
{"name": "memory_utilization", "type": "float", "default": 0, "doc": "Memory Utilization in %"} {"name": "memory_utilization", "type": "float", "default": 0, "doc": "Memory Utilization in %"}
] ]
} }
''' '''

View File

@ -1 +1 @@
measurement,tag=test_tag field=19i,timestamp=1664296121000000i 1664296121000000 measurement,tag=test_tag field=19i 1664296121000000

View File

@ -4,8 +4,6 @@
avro_measurement = "measurement" avro_measurement = "measurement"
avro_tags = [ "tag" ] avro_tags = [ "tag" ]
avro_fields = [ "field" ] avro_fields = [ "field" ]
avro_timestamp = "timestamp"
avro_timestamp_format = "unix_us"
avro_schema = ''' avro_schema = '''
{ {
"type":"record", "type":"record",
@ -19,10 +17,6 @@
{ {
"name":"field", "name":"field",
"type":"long" "type":"long"
},
{
"name":"timestamp",
"type":"long"
} }
] ]
} }