Skip lines that do not match in grok parser
This commit is contained in:
parent
22b3bc4f8e
commit
035e6a6f78
|
@ -2,6 +2,7 @@ package grok
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bufio"
|
"bufio"
|
||||||
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
|
@ -356,18 +357,20 @@ func (p *Parser) ParseLine(line string) (telegraf.Metric, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *Parser) Parse(buf []byte) ([]telegraf.Metric, error) {
|
func (p *Parser) Parse(buf []byte) ([]telegraf.Metric, error) {
|
||||||
scanner := bufio.NewScanner(strings.NewReader(string(buf)))
|
|
||||||
var lines []string
|
|
||||||
for scanner.Scan() {
|
|
||||||
lines = append(lines, scanner.Text())
|
|
||||||
}
|
|
||||||
var metrics []telegraf.Metric
|
|
||||||
|
|
||||||
for _, line := range lines {
|
metrics := make([]telegraf.Metric, 0)
|
||||||
|
|
||||||
|
scanner := bufio.NewScanner(bytes.NewReader(buf))
|
||||||
|
for scanner.Scan() {
|
||||||
|
line := scanner.Text()
|
||||||
m, err := p.ParseLine(line)
|
m, err := p.ParseLine(line)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if m == nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
metrics = append(metrics, m)
|
metrics = append(metrics, m)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue