Add new line protocol parser and serializer, influxdb output (#3924)
This commit is contained in:
@@ -89,7 +89,6 @@ func (p *GraphiteParser) Parse(buf []byte) ([]telegraf.Metric, error) {
|
||||
if line == "" {
|
||||
continue
|
||||
}
|
||||
|
||||
metric, err := p.ParseLine(line)
|
||||
if err == nil {
|
||||
metrics = append(metrics, metric)
|
||||
|
||||
@@ -10,6 +10,7 @@ import (
|
||||
"github.com/influxdata/telegraf/metric"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func BenchmarkParse(b *testing.B) {
|
||||
@@ -379,7 +380,7 @@ func TestFilterMatchDefault(t *testing.T) {
|
||||
m, err := p.ParseLine("miss.servers.localhost.cpu_load 11 1435077219")
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.Equal(t, exp.String(), m.String())
|
||||
assert.Equal(t, exp, m)
|
||||
}
|
||||
|
||||
func TestFilterMatchMultipleMeasurement(t *testing.T) {
|
||||
@@ -397,7 +398,7 @@ func TestFilterMatchMultipleMeasurement(t *testing.T) {
|
||||
m, err := p.ParseLine("servers.localhost.cpu.cpu_load.10 11 1435077219")
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.Equal(t, exp.String(), m.String())
|
||||
assert.Equal(t, exp, m)
|
||||
}
|
||||
|
||||
func TestFilterMatchMultipleMeasurementSeparator(t *testing.T) {
|
||||
@@ -416,7 +417,7 @@ func TestFilterMatchMultipleMeasurementSeparator(t *testing.T) {
|
||||
m, err := p.ParseLine("servers.localhost.cpu.cpu_load.10 11 1435077219")
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.Equal(t, exp.String(), m.String())
|
||||
assert.Equal(t, exp, m)
|
||||
}
|
||||
|
||||
func TestFilterMatchSingle(t *testing.T) {
|
||||
@@ -433,7 +434,7 @@ func TestFilterMatchSingle(t *testing.T) {
|
||||
m, err := p.ParseLine("servers.localhost.cpu_load 11 1435077219")
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.Equal(t, exp.String(), m.String())
|
||||
assert.Equal(t, exp, m)
|
||||
}
|
||||
|
||||
func TestParseNoMatch(t *testing.T) {
|
||||
@@ -451,7 +452,7 @@ func TestParseNoMatch(t *testing.T) {
|
||||
m, err := p.ParseLine("servers.localhost.memory.VmallocChunk 11 1435077219")
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.Equal(t, exp.String(), m.String())
|
||||
assert.Equal(t, exp, m)
|
||||
}
|
||||
|
||||
func TestFilterMatchWildcard(t *testing.T) {
|
||||
@@ -469,7 +470,7 @@ func TestFilterMatchWildcard(t *testing.T) {
|
||||
m, err := p.ParseLine("servers.localhost.cpu_load 11 1435077219")
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.Equal(t, exp.String(), m.String())
|
||||
assert.Equal(t, exp, m)
|
||||
}
|
||||
|
||||
func TestFilterMatchExactBeforeWildcard(t *testing.T) {
|
||||
@@ -489,7 +490,7 @@ func TestFilterMatchExactBeforeWildcard(t *testing.T) {
|
||||
m, err := p.ParseLine("servers.localhost.cpu_load 11 1435077219")
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.Equal(t, exp.String(), m.String())
|
||||
assert.Equal(t, exp, m)
|
||||
}
|
||||
|
||||
func TestFilterMatchMostLongestFilter(t *testing.T) {
|
||||
@@ -508,8 +509,13 @@ func TestFilterMatchMostLongestFilter(t *testing.T) {
|
||||
m, err := p.ParseLine("servers.localhost.cpu.cpu_load 11 1435077219")
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.Contains(t, m.String(), ",host=localhost")
|
||||
assert.Contains(t, m.String(), ",resource=cpu")
|
||||
value, ok := m.GetTag("host")
|
||||
require.True(t, ok)
|
||||
require.Equal(t, "localhost", value)
|
||||
|
||||
value, ok = m.GetTag("resource")
|
||||
require.True(t, ok)
|
||||
require.Equal(t, "cpu", value)
|
||||
}
|
||||
|
||||
func TestFilterMatchMultipleWildcards(t *testing.T) {
|
||||
@@ -533,7 +539,7 @@ func TestFilterMatchMultipleWildcards(t *testing.T) {
|
||||
m, err := p.ParseLine("servers.server01.cpu_load 11 1435077219")
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.Equal(t, exp.String(), m.String())
|
||||
assert.Equal(t, exp, m)
|
||||
}
|
||||
|
||||
func TestParseDefaultTags(t *testing.T) {
|
||||
@@ -549,9 +555,17 @@ func TestParseDefaultTags(t *testing.T) {
|
||||
m, err := p.ParseLine("servers.localhost.cpu_load 11 1435077219")
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.Contains(t, m.String(), ",host=localhost")
|
||||
assert.Contains(t, m.String(), ",region=us-east")
|
||||
assert.Contains(t, m.String(), ",zone=1c")
|
||||
value, ok := m.GetTag("host")
|
||||
require.True(t, ok)
|
||||
require.Equal(t, "localhost", value)
|
||||
|
||||
value, ok = m.GetTag("region")
|
||||
require.True(t, ok)
|
||||
require.Equal(t, "us-east", value)
|
||||
|
||||
value, ok = m.GetTag("zone")
|
||||
require.True(t, ok)
|
||||
require.Equal(t, "1c", value)
|
||||
}
|
||||
|
||||
func TestParseDefaultTemplateTags(t *testing.T) {
|
||||
@@ -566,9 +580,17 @@ func TestParseDefaultTemplateTags(t *testing.T) {
|
||||
m, err := p.ParseLine("servers.localhost.cpu_load 11 1435077219")
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.Contains(t, m.String(), ",host=localhost")
|
||||
assert.Contains(t, m.String(), ",region=us-east")
|
||||
assert.Contains(t, m.String(), ",zone=1c")
|
||||
value, ok := m.GetTag("host")
|
||||
require.True(t, ok)
|
||||
require.Equal(t, "localhost", value)
|
||||
|
||||
value, ok = m.GetTag("region")
|
||||
require.True(t, ok)
|
||||
require.Equal(t, "us-east", value)
|
||||
|
||||
value, ok = m.GetTag("zone")
|
||||
require.True(t, ok)
|
||||
require.Equal(t, "1c", value)
|
||||
}
|
||||
|
||||
func TestParseDefaultTemplateTagsOverridGlobal(t *testing.T) {
|
||||
@@ -581,11 +603,20 @@ func TestParseDefaultTemplateTagsOverridGlobal(t *testing.T) {
|
||||
}
|
||||
|
||||
m, err := p.ParseLine("servers.localhost.cpu_load 11 1435077219")
|
||||
_ = m
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.Contains(t, m.String(), ",host=localhost")
|
||||
assert.Contains(t, m.String(), ",region=us-east")
|
||||
assert.Contains(t, m.String(), ",zone=1c")
|
||||
value, ok := m.GetTag("host")
|
||||
require.True(t, ok)
|
||||
require.Equal(t, "localhost", value)
|
||||
|
||||
value, ok = m.GetTag("region")
|
||||
require.True(t, ok)
|
||||
require.Equal(t, "us-east", value)
|
||||
|
||||
value, ok = m.GetTag("zone")
|
||||
require.True(t, ok)
|
||||
require.Equal(t, "1c", value)
|
||||
}
|
||||
|
||||
func TestParseTemplateWhitespace(t *testing.T) {
|
||||
@@ -602,9 +633,17 @@ func TestParseTemplateWhitespace(t *testing.T) {
|
||||
m, err := p.ParseLine("servers.localhost.cpu_load 11 1435077219")
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.Contains(t, m.String(), ",host=localhost")
|
||||
assert.Contains(t, m.String(), ",region=us-east")
|
||||
assert.Contains(t, m.String(), ",zone=1c")
|
||||
value, ok := m.GetTag("host")
|
||||
require.True(t, ok)
|
||||
require.Equal(t, "localhost", value)
|
||||
|
||||
value, ok = m.GetTag("region")
|
||||
require.True(t, ok)
|
||||
require.Equal(t, "us-east", value)
|
||||
|
||||
value, ok = m.GetTag("zone")
|
||||
require.True(t, ok)
|
||||
require.Equal(t, "1c", value)
|
||||
}
|
||||
|
||||
// Test basic functionality of ApplyTemplate
|
||||
|
||||
Reference in New Issue
Block a user