Skip to content

Commit

Permalink
filter regexp to use regexp.Compile (#1588)
Browse files Browse the repository at this point in the history
  • Loading branch information
Steffen Siering authored and monicasarbu committed May 10, 2016
1 parent 04d9e29 commit ba09d7a
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 21 deletions.
9 changes: 2 additions & 7 deletions libbeat/filter/condition.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,8 @@ func (c *Condition) AddContains(contains map[string]string) error {
return nil
}

func (c *Condition) AddRegexp(r map[string]string) error {

for field, value := range r {
reg, err := regexp.CompilePOSIX(value)
if err != nil {
return err
}
func (c *Condition) AddRegexp(r map[string]*regexp.Regexp) error {
for field, reg := range r {
c.Regexp[field] = reg
}
return nil
Expand Down
17 changes: 9 additions & 8 deletions libbeat/filter/condition_test.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package filter

import (
"regexp"
"testing"

"github.com/elastic/beats/libbeat/common"
Expand Down Expand Up @@ -126,27 +127,27 @@ func TestRegexpCondition(t *testing.T) {

// first simple condition
config1 := ConditionConfig{
Regexp: map[string]string{
"source": "apache2/error.*",
Regexp: map[string]*regexp.Regexp{
"source": regexp.MustCompile("apache2/error.*"),
},
}
cond1, err := NewCondition(config1)
assert.True(t, err == nil)

// second simple condition
config2 := ConditionConfig{
Regexp: map[string]string{
"source": "apache2/access.*",
Regexp: map[string]*regexp.Regexp{
"source": regexp.MustCompile("apache2/access.*"),
},
}
cond2, err := NewCondition(config2)
assert.True(t, err == nil)

// third complex condition
config3 := ConditionConfig{
Regexp: map[string]string{
"source": "apache2/error.*",
"message": "[client 1.2.3.4]",
Regexp: map[string]*regexp.Regexp{
"source": regexp.MustCompile("apache2/error.*"),
"message": regexp.MustCompile("[client 1.2.3.4]"),
},
}
cond3, err := NewCondition(config3)
Expand Down Expand Up @@ -217,7 +218,7 @@ func TestRangeCondition(t *testing.T) {
assert.True(t, err == nil)

// float condition
var v05 float64 = 0.5
var v05 = 0.5
config4 := ConditionConfig{
Range: map[string]RangeValue{
"proc.cpu.total_p": RangeValue{Gte: &v05},
Expand Down
10 changes: 6 additions & 4 deletions libbeat/filter/config.go
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package filter

import "regexp"

type ConditionConfig struct {
Equals map[string]string `config:"equals"`
Contains map[string]string `config:"contains"`
Regexp map[string]string `config:"regexp"`
Range map[string]RangeValue `config:"range"`
Equals map[string]string `config:"equals"`
Contains map[string]string `config:"contains"`
Regexp map[string]*regexp.Regexp `config:"regexp"`
Range map[string]RangeValue `config:"range"`
}

type RangeValue struct {
Expand Down
5 changes: 3 additions & 2 deletions libbeat/filter/filter_test.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package filter

import (
"regexp"
"testing"

"github.com/elastic/beats/libbeat/common"
Expand Down Expand Up @@ -83,8 +84,8 @@ func TestIncludeFields1(t *testing.T) {

rule, err := NewIncludeFields(IncludeFieldsConfig{
Fields: []string{"proc.cpu.total_ddd"},
ConditionConfig: ConditionConfig{Regexp: map[string]string{
"proc.cmdline": "launchd",
ConditionConfig: ConditionConfig{Regexp: map[string]*regexp.Regexp{
"proc.cmdline": regexp.MustCompile("launchd"),
}},
})
assert.True(t, err == nil)
Expand Down

0 comments on commit ba09d7a

Please sign in to comment.