fix(parsers.grok): Fix nil metric for multiline inputs (#13078)
This commit is contained in:
parent
14c84a00ee
commit
302ac88bdb
|
|
@ -387,7 +387,9 @@ func (p *Parser) Parse(buf []byte) ([]telegraf.Metric, error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
metrics = append(metrics, m)
|
if m != nil {
|
||||||
|
metrics = append(metrics, m)
|
||||||
|
}
|
||||||
return metrics, nil
|
return metrics, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1167,3 +1167,19 @@ func TestTrimRegression(t *testing.T) {
|
||||||
)
|
)
|
||||||
require.Equal(t, expected, actual)
|
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)
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue