lib/fluent/plugin/out_mongo.rb in fluent-plugin-mongo-1.4.0 vs lib/fluent/plugin/out_mongo.rb in fluent-plugin-mongo-1.4.1

- old
+ new

@@ -47,10 +47,13 @@ config_param :tag_mapped, :bool, default: false, deprecated: "use '${tag}' placeholder in collection parameter." desc "Remove tag prefix" config_param :remove_tag_prefix, :string, default: nil, deprecated: "use @label instead for event routing." + # expire indexes + desc "Specify expire after seconds" + config_param :expire_after, :time, default: 0 # SSL connection config_param :ssl, :bool, default: false config_param :ssl_cert, :string, default: nil config_param :ssl_key, :string, default: nil @@ -119,14 +122,10 @@ if @connection_string.nil? && @database.nil? raise Fluent::ConfigError, "connection_string or database parameter is required" end - unless @ignore_invalid_record - log.warn "Since v0.8, invalid record detection will be removed because mongo driver v2.x and API spec don't provide it. You may lose invalid records, so you should not send such records to mongo plugin" - end - if conf.has_key?('tag_mapped') log.warn "'tag_mapped' feature is replaced with built-in config placeholder. Please consider to use 'collection ${tag}'." @collection = '${tag}' end raise Fluent::ConfigError, "normal mode requires collection parameter" if !@tag_mapped and !conf.has_key?('collection') @@ -272,9 +271,16 @@ return @client[name] if @collections[name] unless collection_exists?(name) log.trace "Create collection #{name} with options #{options}" @client[name, options].create + if @expire_after > 0 && @inject_config + log.trace "Create expiring index with key: \"#{@inject_config.time_key}\" and seconds: \"#{@expire_after}\"" + @client[name].indexes.create_one( + {"#{@inject_config.time_key}": 1}, + expire_after: @expire_after + ) + end end @collections[name] = true @client[name] end