class LogStash::Filters::Metaevent
Public Instance Methods
filter(event)
click to toggle source
# File lib/logstash/filters/metaevent.rb, line 20 def filter(event) if filter?(event) start_period(event) elsif within_period(event) if followed_by_tags_match(event) trigger(event) else @logger.debug(["metaevent", @add_tag, "ignoring (tags don't match)", event]) end else @logger.debug(["metaevent", @add_tag, "ignoring (not in period)", event]) end end
flush()
click to toggle source
# File lib/logstash/filters/metaevent.rb, line 34 def flush return if @metaevents.empty? new_events = @metaevents @metaevents = [] new_events end
register()
click to toggle source
# File lib/logstash/filters/metaevent.rb, line 15 def register @logger.debug("registering") @metaevents = [] end
Private Instance Methods
start_period(event)
click to toggle source
# File lib/logstash/filters/metaevent.rb, line 44 def start_period(event) @logger.debug(["metaevent", @add_tag, "start_period", event]) @start_event = event end
trigger(event)
click to toggle source
# File lib/logstash/filters/metaevent.rb, line 49 def trigger(event) @logger.debug(["metaevent", @add_tag, "trigger", event]) event = LogStash::Event.new event["source"] = Socket.gethostname event["tags"] = [@add_tag] @metaevents << event @start_event = nil end
within_period(event)
click to toggle source
# File lib/logstash/filters/metaevent.rb, line 64 def within_period(event) time_delta = event["@timestamp"] - @start_event["@timestamp"] time_delta >= 0 && time_delta <= @period end