lib/fluent/plugin/out_mongo.rb in fluent-plugin-mongo-0.5.1 vs lib/fluent/plugin/out_mongo.rb in fluent-plugin-mongo-0.5.2
- old
+ new
@@ -111,20 +111,29 @@
# Following limits are heuristic. BSON is sometimes bigger than MessagePack and JSON.
LIMIT_BEFORE_v1_8 = 2 * 1024 * 1024 # 2MB = 4MB / 2
LIMIT_AFTER_v1_8 = 10 * 1024 * 1024 # 10MB = 16MB / 2 + alpha
def available_buffer_chunk_limit
- limit = mongod_version >= "1.8.0" ? LIMIT_AFTER_v1_8 : LIMIT_BEFORE_v1_8 # TODO: each version comparison
+ begin
+ limit = mongod_version >= "1.8.0" ? LIMIT_AFTER_v1_8 : LIMIT_BEFORE_v1_8 # TODO: each version comparison
+ rescue Mongo::ConnectionFailure => e
+ $log.warn "mongo connection failed, set #{LIMIT_BEFORE_v1_8} to chunk limit"
+ limit = LIMIT_BEFORE_v1_8
+ rescue Exception => e
+ $log.warn "mongo unknown error #{e}, set #{LIMIT_BEFORE_v1_8} to chunk limit"
+ limit = LIMIT_BEFORE_v1_8
+ end
+
if @buffer.buffer_chunk_limit > limit
$log.warn ":buffer_chunk_limit(#{@buffer.buffer_chunk_limit}) is large. Reset :buffer_chunk_limit with #{limit}"
limit
else
@buffer.buffer_chunk_limit
end
end
def mongod_version
- Mongo::Connection.new.db('admin').command('serverStatus' => 1)['version']
+ Mongo::Connection.new(@host, @port).db('admin').command('serverStatus' => 1)['version']
end
end
end