Fix tags applied to wrong metric on parse error (#5650)
This commit is contained in:
@@ -118,3 +118,7 @@ func (h *MetricHandler) SetTimestamp(tm []byte) error {
|
|||||||
h.builder.SetTime(time.Unix(0, ns))
|
h.builder.SetTime(time.Unix(0, ns))
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (h *MetricHandler) Reset() {
|
||||||
|
h.builder.Reset()
|
||||||
|
}
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ func (p *Parser) Parse(input []byte) ([]telegraf.Metric, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
p.handler.Reset()
|
||||||
return nil, &ParseError{
|
return nil, &ParseError{
|
||||||
Offset: p.machine.Position(),
|
Offset: p.machine.Position(),
|
||||||
LineOffset: p.machine.LineOffset(),
|
LineOffset: p.machine.LineOffset(),
|
||||||
@@ -87,6 +88,7 @@ func (p *Parser) Parse(input []byte) ([]telegraf.Metric, error) {
|
|||||||
|
|
||||||
metric, err := p.handler.Metric()
|
metric, err := p.handler.Metric()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
p.handler.Reset()
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user