Fix selection of tags under nested objects in the JSON parser (#4284)

(cherry picked from commit 8482c40a91)
This commit is contained in:
maxunt
2018-06-14 13:17:32 -07:00
committed by Daniel Nelson
parent 92ca14f203
commit 0cab47fa80
2 changed files with 70 additions and 14 deletions

View File

@@ -4,6 +4,7 @@ import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
const (
@@ -440,3 +441,29 @@ func TestHttpJsonBOM(t *testing.T) {
_, err := parser.Parse(jsonBOM)
assert.NoError(t, err)
}
//for testing issue #4260
func TestJSONParseNestedArray(t *testing.T) {
testString := `{
"total_devices": 5,
"total_threads": 10,
"shares": {
"total": 5,
"accepted": 5,
"rejected": 0,
"avg_find_time": 4,
"tester": "work",
"tester2": "don't want this",
"tester3": 7.93
}
}`
parser := JSONParser{
MetricName: "json_test",
TagKeys: []string{"total_devices", "total_threads", "shares_tester", "shares_tester3"},
}
metrics, err := parser.Parse([]byte(testString))
require.NoError(t, err)
require.Equal(t, len(parser.TagKeys), len(metrics[0].Tags()))
}