Fix panic if JSONNameKey is not found (#4735)
This commit is contained in:
parent
146a30e065
commit
4c9c31c34f
|
@ -108,7 +108,7 @@ Config:
|
||||||
files = ["example"]
|
files = ["example"]
|
||||||
name_key = "name"
|
name_key = "name"
|
||||||
tag_keys = ["my_tag_1"]
|
tag_keys = ["my_tag_1"]
|
||||||
string_fields = ["my_field"]
|
string_fields = ["b_my_field"]
|
||||||
data_format = "json"
|
data_format = "json"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -127,7 +127,7 @@ Input:
|
||||||
|
|
||||||
Output:
|
Output:
|
||||||
```
|
```
|
||||||
my_json,my_tag_1=foo a=5,b_c=6,my_field="description"
|
my_json,my_tag_1=foo a=5,b_c=6,b_my_field="description"
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Arrays
|
#### Arrays
|
||||||
|
|
|
@ -5,6 +5,8 @@ import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
"math"
|
||||||
|
"regexp"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
@ -13,8 +15,6 @@ import (
|
||||||
"github.com/influxdata/telegraf/metric"
|
"github.com/influxdata/telegraf/metric"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/tidwall/gjson"
|
"github.com/tidwall/gjson"
|
||||||
"math"
|
|
||||||
"regexp"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -94,7 +94,6 @@ func parseUnixTimestamp(jsonValue interface{}, format string) (time.Time, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *JSONParser) parseObject(metrics []telegraf.Metric, jsonOut map[string]interface{}) ([]telegraf.Metric, error) {
|
func (p *JSONParser) parseObject(metrics []telegraf.Metric, jsonOut map[string]interface{}) ([]telegraf.Metric, error) {
|
||||||
|
|
||||||
tags := make(map[string]string)
|
tags := make(map[string]string)
|
||||||
for k, v := range p.DefaultTags {
|
for k, v := range p.DefaultTags {
|
||||||
tags[k] = v
|
tags[k] = v
|
||||||
|
@ -108,7 +107,10 @@ func (p *JSONParser) parseObject(metrics []telegraf.Metric, jsonOut map[string]i
|
||||||
|
|
||||||
//checks if json_name_key is set
|
//checks if json_name_key is set
|
||||||
if p.JSONNameKey != "" {
|
if p.JSONNameKey != "" {
|
||||||
p.MetricName = f.Fields[p.JSONNameKey].(string)
|
switch field := f.Fields[p.JSONNameKey].(type) {
|
||||||
|
case string:
|
||||||
|
p.MetricName = field
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//if time key is specified, set it to nTime
|
//if time key is specified, set it to nTime
|
||||||
|
|
Loading…
Reference in New Issue