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