fix(parsers.grok): Fix nil metric for multiline inputs (#13078)

This commit is contained in:
Sven Rebhan 2023-04-13 00:15:35 +02:00 committed by GitHub
parent 14c84a00ee
commit 302ac88bdb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 1 deletions

View File

@ -387,7 +387,9 @@ func (p *Parser) Parse(buf []byte) ([]telegraf.Metric, error) {
if err != nil {
return nil, err
}
metrics = append(metrics, m)
if m != nil {
metrics = append(metrics, m)
}
return metrics, nil
}

View File

@ -1167,3 +1167,19 @@ func TestTrimRegression(t *testing.T) {
)
require.Equal(t, expected, actual)
}
func TestMultilineNilMetric(t *testing.T) {
buf, err := os.ReadFile("./testdata/test_multiline.log")
require.NoError(t, err)
p := &Parser{
Measurement: "multiline",
Patterns: []string{`%{TIMESTAMP_ISO8601:timestamp:ts-rfc3339} Info%{MULTILINEDATA:text}`},
Multiline: true,
Log: testutil.Logger{},
}
require.NoError(t, p.Compile())
actual, err := p.Parse(buf)
require.NoError(t, err)
require.Empty(t, actual)
}