diff --git a/lib/logstash/outputs/mongodb.rb b/lib/logstash/outputs/mongodb.rb index ce853a8..1b8385e 100644 --- a/lib/logstash/outputs/mongodb.rb +++ b/lib/logstash/outputs/mongodb.rb @@ -34,6 +34,9 @@ class LogStash::Outputs::Mongodb < LogStash::Outputs::Base # "_id" field in the event. config :generateId, :validate => :boolean, :default => false + # Number of insert attempts before reconnect to MongoDB + config :retries_before_reconnect, :validate => :number, :default => 3, :required => false + public def register Mongo::Logger.logger = @logger @@ -42,6 +45,7 @@ def register end # def register def receive(event) + retries = 0 begin # Our timestamp object now has a to_bson method, using it here # {}.merge(other) so we don't taint the event hash innards @@ -65,8 +69,13 @@ def receive(event) # to fix the issue. else sleep @retry_delay + retries += 1 + if @retries_before_reconnect == retries + register + retries = 0 + end retry end end end # def receive -end # class LogStash::Outputs::Mongodb +end # class LogStash::Outputs::Mongodb \ No newline at end of file