Skip to content

Commit 4b74a44

Browse files
authored
Reconnect to MongoDB if multiple failures
Implemented logstash-plugins#29
1 parent f013fd0 commit 4b74a44

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

lib/logstash/outputs/mongodb.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ class LogStash::Outputs::Mongodb < LogStash::Outputs::Base
3434
# "_id" field in the event.
3535
config :generateId, :validate => :boolean, :default => false
3636

37+
# Number of insert attempts before reconnect to MongoDB
38+
config :retries_before_reconnect, :validate => :number, :default => 3, :required => false
39+
3740

3841
# Bulk insert flag, set to true to allow bulk insertion, else it will insert events one by one.
3942
config :bulk, :validate => :boolean, :default => false
@@ -72,6 +75,7 @@ def register
7275
end # def register
7376

7477
def receive(event)
78+
retries = 0
7579
begin
7680
# Our timestamp object now has a to_bson method, using it here
7781
# {}.merge(other) so we don't taint the event hash innards
@@ -111,6 +115,11 @@ def receive(event)
111115
# to fix the issue.
112116
else
113117
sleep @retry_delay
118+
retries += 1
119+
if @retries_before_reconnect == retries
120+
register
121+
retries = 0
122+
end
114123
retry
115124
end
116125
end

0 commit comments

Comments
 (0)