# Output to Couchbase # :hostname => "localhost" # :port => 8091 # :password => "secret" # :username => 'protected' # :bucket => "default" # :pool => "default" # :timeout => 3_000_000 # require "logstash/outputs/base" require "logstash/namespace" class LogStash::Outputs::Couchbase < LogStash::Outputs::Base config_name "couchbase" milestone 1 config :hostname, :validate => :string, :required => true config :port, :validate => :integer, :required => true config :pool, :validate => :string, :required => true config :bucket, :validate => :string, :required => true config :username, :validate => :string, :required => true config :password, :validate => :string, :required => true config :isodate, :validate => :boolean, :default => false config :ttl, :validate => :number, :default => 3000, :required => false public def register require 'couchbase' require 'msgpack' require 'json' require 'active_support/core_ext/hash' # Connection Couchbase.connection_options = {:async => true} conn_couchbase = Couchbase.connect(:hostname => hostname, :port => port, :pool => pool, :username => username, :password => password, :bucket => bucket) end # def register public def receive(event) return unless output?(event) begin if @isodate document = event.to_hash else document = event.to_hash.merge("@timestamp" => event["@timestamp"].to_json) end #Insert rescue => e @logger.warn("Failed to send event to Couchbase", :event => event, :exception => e, :backtrace => e.backtrace) end end # def receive end # class LogStash::Outputs::Couchbase