sleep on every N'th event

This commit is contained in:
Piavlo 2013-04-04 00:26:59 +03:00 committed by Jordan Sissel
parent e213a53f3f
commit 83afe07707

View file

@ -26,6 +26,21 @@ class LogStash::Filters::Sleep < LogStash::Filters::Base
# }
config :time, :validate => :string
# Sleep on every N'th even where unslept_count=N, defaults to every event.
# This option is ignored in replay mode.
#
# Example:
#
# filter {
# sleep {
# # Sleep 1 second on every 10'th event.
# time => "1"
# count => 10
# }
# }
config :unslept_count, :validate => :string, :default => 1
# Enable replay mode.
#
# Replay mode tries to sleep based on timestamps in each event.
@ -58,6 +73,7 @@ class LogStash::Filters::Sleep < LogStash::Filters::Base
# Default time multiplier is 1 when replay is set.
@time = 1
end
@events_unslept = 0
end # def register
public
@ -82,7 +98,11 @@ class LogStash::Filters::Sleep < LogStash::Filters::Base
end
@last_clock = clock
else
sleep(time)
@events_unslept += 1
if @events_unslept >= @unslept_count
sleep(time)
@events_unslept = 0
end
end
filter_matched(event)
end # def filter