parent
ed43e1010b
commit
a38ebcbe54
|
@ -65,6 +65,7 @@ be deprecated eventually.
|
||||||
- [#2390](https://github.com/influxdata/telegraf/issues/2390): Empty tag value causes error on InfluxDB output.
|
- [#2390](https://github.com/influxdata/telegraf/issues/2390): Empty tag value causes error on InfluxDB output.
|
||||||
- [#2380](https://github.com/influxdata/telegraf/issues/2380): buffer_size field value is negative number from "internal" plugin.
|
- [#2380](https://github.com/influxdata/telegraf/issues/2380): buffer_size field value is negative number from "internal" plugin.
|
||||||
- [#2414](https://github.com/influxdata/telegraf/issues/2414): Missing error handling in the MySQL plugin leads to segmentation violation.
|
- [#2414](https://github.com/influxdata/telegraf/issues/2414): Missing error handling in the MySQL plugin leads to segmentation violation.
|
||||||
|
- [#2178](https://github.com/influxdata/telegraf/issues/2178): logparser: regexp with lookahead.
|
||||||
|
|
||||||
## v1.2.1 [2017-02-01]
|
## v1.2.1 [2017-02-01]
|
||||||
|
|
||||||
|
|
|
@ -57,6 +57,43 @@ func Benchmark_ParseLine_CustomPattern(b *testing.B) {
|
||||||
benchM = m
|
benchM = m
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Test a very simple parse pattern.
|
||||||
|
func TestSimpleParse(t *testing.T) {
|
||||||
|
p := &Parser{
|
||||||
|
Patterns: []string{"%{TESTLOG}"},
|
||||||
|
CustomPatterns: `
|
||||||
|
TESTLOG %{NUMBER:num:int} %{WORD:client}
|
||||||
|
`,
|
||||||
|
}
|
||||||
|
assert.NoError(t, p.Compile())
|
||||||
|
|
||||||
|
m, err := p.ParseLine(`142 bot`)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
require.NotNil(t, m)
|
||||||
|
|
||||||
|
assert.Equal(t,
|
||||||
|
map[string]interface{}{
|
||||||
|
"num": int64(142),
|
||||||
|
"client": "bot",
|
||||||
|
},
|
||||||
|
m.Fields())
|
||||||
|
}
|
||||||
|
|
||||||
|
// Verify that patterns with a regex lookahead fail at compile time.
|
||||||
|
func TestParsePatternsWithLookahead(t *testing.T) {
|
||||||
|
p := &Parser{
|
||||||
|
Patterns: []string{"%{MYLOG}"},
|
||||||
|
CustomPatterns: `
|
||||||
|
NOBOT ((?!bot|crawl).)*
|
||||||
|
MYLOG %{NUMBER:num:int} %{NOBOT:client}
|
||||||
|
`,
|
||||||
|
}
|
||||||
|
assert.NoError(t, p.Compile())
|
||||||
|
|
||||||
|
_, err := p.ParseLine(`1466004605359052000 bot`)
|
||||||
|
assert.Error(t, err)
|
||||||
|
}
|
||||||
|
|
||||||
func TestMeasurementName(t *testing.T) {
|
func TestMeasurementName(t *testing.T) {
|
||||||
p := &Parser{
|
p := &Parser{
|
||||||
Measurement: "my_web_log",
|
Measurement: "my_web_log",
|
||||||
|
|
|
@ -226,6 +226,8 @@ func (l *LogParserPlugin) parser() {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
l.acc.AddFields(m.Name(), m.Fields(), m.Tags(), m.Time())
|
l.acc.AddFields(m.Name(), m.Fields(), m.Tags(), m.Time())
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
log.Println("E! Error parsing log line: " + err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue