57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
# File 'lib/logstash/filters/delta.rb', line 57
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
|