internal: FlattenJSON, flatten arrays as well

With HTTP JSON or Elasticsearch, one can also process values nested in arrays.
This commit is contained in:
Philip Silva
2016-01-12 12:12:49 +01:00
committed by Cameron Sparr
parent fb837ca66d
commit 3c89847489
4 changed files with 34 additions and 12 deletions

View File

@@ -19,12 +19,12 @@ const validJSON = `
},
"ignored_null": null,
"integer": 4,
"ignored_list": [3, 4],
"list": [3, 4],
"ignored_parent": {
"another_ignored_list": [4],
"another_ignored_null": null,
"ignored_string": "hello, world!"
}
},
"another_list": [4]
}`
const validJSONTags = `
@@ -35,8 +35,11 @@ const validJSONTags = `
}`
var expectedFields = map[string]interface{}{
"parent_child": float64(3),
"integer": float64(4),
"parent_child": float64(3),
"list_0": float64(3),
"list_1": float64(4),
"another_list_0": float64(4),
"integer": float64(4),
}
const invalidJSON = "I don't think this is JSON"
@@ -123,7 +126,7 @@ func TestHttpJson200(t *testing.T) {
var acc testutil.Accumulator
err := service.Gather(&acc)
require.NoError(t, err)
assert.Equal(t, 4, acc.NFields())
assert.Equal(t, 10, acc.NFields())
for _, srv := range service.Servers {
tags := map[string]string{"server": srv}
mname := "httpjson_" + service.Name