mirror of
https://github.com/elastic/logstash.git
synced 2025-04-24 06:37:19 -04:00
- make fieldvalues be strings to allow grok to work on numbers
This commit is contained in:
parent
1b8bf832cd
commit
33449059a0
1 changed files with 4 additions and 2 deletions
|
@ -171,10 +171,12 @@ class LogStash::Filters::Grok < LogStash::Filters::Base
|
|||
@logger.debug("Trying pattern", :pile => pile, :field => field )
|
||||
(event[field].is_a?(Array) ? event[field] : [event[field]]).each do |fieldvalue|
|
||||
begin
|
||||
grok, match = pile.match(fieldvalue)
|
||||
# Coerce all field values to string. This turns arrays, hashes, numbers, etc
|
||||
# into strings for grokking. Seems like the best 'do what I mean' thing to do.
|
||||
grok, match = pile.match(fieldvalue.to_s)
|
||||
rescue Exception => e
|
||||
fieldvalue_bytes = []
|
||||
fieldvalue.bytes.each { |b| fieldvalue_bytes << b }
|
||||
fieldvalue.to_s.bytes.each { |b| fieldvalue_bytes << b }
|
||||
@logger.warn("Grok regexp threw exception", :exception => e.message,
|
||||
:field => field, :grok_pile => pile,
|
||||
:fieldvalue_bytes => fieldvalue_bytes)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue