Skip to content

Commit

Permalink
Don't set values when pattern doesn't match in regex processor (#4396)
Browse files Browse the repository at this point in the history
(cherry picked from commit 35d2f90)
  • Loading branch information
44px authored and danielnelson committed Jul 6, 2018
1 parent 858335b commit 63d07f4
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 5 deletions.
8 changes: 6 additions & 2 deletions plugins/processors/regex/regex.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,15 +67,19 @@ func (r *Regex) Apply(in ...telegraf.Metric) []telegraf.Metric {
for _, metric := range in {
for _, converter := range r.Tags {
if value, ok := metric.GetTag(converter.Key); ok {
metric.AddTag(r.convert(converter, value))
if key, newValue := r.convert(converter, value); newValue != "" {
metric.AddTag(key, newValue)
}
}
}

for _, converter := range r.Fields {
if value, ok := metric.GetField(converter.Key); ok {
switch value := value.(type) {
case string:
metric.AddField(r.convert(converter, value))
if key, newValue := r.convert(converter, value); newValue != "" {
metric.AddField(key, newValue)
}
}
}
}
Expand Down
5 changes: 2 additions & 3 deletions plugins/processors/regex/regex_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -222,16 +222,15 @@ func TestNoMatches(t *testing.T) {
},
},
{
message: "Should emit empty string when result_key given but regex doesn't match",
message: "Should not emit new tag/field when result_key given but regex doesn't match",
converter: converter{
Key: "request",
Pattern: "not_match",
Replacement: "x",
ResultKey: "new_field",
},
expectedFields: map[string]interface{}{
"request": "/users/42/",
"new_field": "",
"request": "/users/42/",
},
},
}
Expand Down

0 comments on commit 63d07f4

Please sign in to comment.