Add parse_multivalue to collectd parser (#4403)

This commit is contained in:
maxunt
2018-07-11 17:29:23 -07:00
committed by Daniel Nelson
parent 7b73b0db3a
commit 9ebf16636d
5 changed files with 117 additions and 35 deletions

View File

@@ -6,6 +6,7 @@ import (
"collectd.org/api"
"collectd.org/network"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/influxdata/telegraf"
@@ -76,7 +77,7 @@ var multiMetric = testCase{
api.Derive(42),
api.Gauge(42),
},
DSNames: []string(nil),
DSNames: []string{"t1", "t2"},
},
},
[]metricData{
@@ -108,7 +109,7 @@ var multiMetric = testCase{
}
func TestNewCollectdParser(t *testing.T) {
parser, err := NewCollectdParser("", "", []string{})
parser, err := NewCollectdParser("", "", []string{}, "join")
require.Nil(t, err)
require.Equal(t, parser.popts.SecurityLevel, network.None)
require.NotNil(t, parser.popts.PasswordLookup)
@@ -133,6 +134,19 @@ func TestParse(t *testing.T) {
}
}
func TestParseMultiValueSplit(t *testing.T) {
buf, err := writeValueList(multiMetric.vl)
require.Nil(t, err)
bytes, err := buf.Bytes()
require.Nil(t, err)
parser := &CollectdParser{ParseMultiValue: "split"}
metrics, err := parser.Parse(bytes)
require.Nil(t, err)
assert.Equal(t, 2, len(metrics))
}
func TestParse_DefaultTags(t *testing.T) {
buf, err := writeValueList(singleMetric.vl)
require.Nil(t, err)
@@ -266,7 +280,7 @@ func TestParseLine(t *testing.T) {
bytes, err := buf.Bytes()
require.Nil(t, err)
parser, err := NewCollectdParser("", "", []string{})
parser, err := NewCollectdParser("", "", []string{}, "split")
require.Nil(t, err)
metric, err := parser.ParseLine(string(bytes))
require.Nil(t, err)