class LogStash::Filters::Delta
Public Instance Methods
filter(event)
click to toggle source
# File lib/logstash/filters/delta.rb, line 59 def filter(event) delta = 0 if @between_fields.length != 1 return filter_failed(event, @tag_on_failure) end @between_fields.each do |from, to| if !event.include?(from) or !event.include?(to) return filter_failed(event, @tag_on_failure) end begin delta = ensure_numeric(event.get(to)) - ensure_numeric(event.get(from)) rescue ArgumentError return filter_failed(event, @tag_on_failure) end if @min and delta < @min return filter_failed(event, @tag_on_min_failure) end if @max and delta > @max return filter_failed(event, @tag_on_max_failure) end end if !@output_field.nil? event.set(@output_field, delta) end filter_matched(event) end
register()
click to toggle source
# File lib/logstash/filters/delta.rb, line 55 def register end
Private Instance Methods
cast_string_to_numeric(value)
click to toggle source
# File lib/logstash/filters/delta.rb, line 36 def cast_string_to_numeric(value) begin return Integer(value) rescue ArgumentError return Float(value) rescue TypeError raise ArgumentError end end
ensure_numeric(value)
click to toggle source
# File lib/logstash/filters/delta.rb, line 47 def ensure_numeric(value) if (value.is_a? Float or value.is_a? Integer) return value end return cast_string_to_numeric(value) end
filter_failed(event, tags)
click to toggle source
# File lib/logstash/filters/delta.rb, line 31 def filter_failed(event, tags) tags.each {|tag| event.tag(tag)} end