class LogStash::Outputs::Redis
An redis output that does nothing.
Public Instance Methods
identity()
click to toggle source
A string used to identify a Redis
instance in log messages
# File lib/logstash/outputs/redis_set.rb, line 105 def identity "redis://#{@password}@#{@host}:#{@port}/#{@db} #{@action} #{@key}" end
receive(event)
click to toggle source
# File lib/logstash/outputs/redis_set.rb, line 52 def receive(event) begin key = event.sprintf(@key) @redis ||= connect case @action when "ZADD" member = event.sprintf(@member) if @score score = event.sprintf(@score) else score = (event.get("@timestamp").to_f * 1000).to_i end @redis.zadd(key, score, member) when "SET" value = event.sprintf(@value) @redis.set(key, value) when "SADD" member = event.sprintf(@member) @redis.sadd(key, member) when "HSET" field = event.sprintf(@field) value = event.sprintf(@value) @redis.hset(key, field, value) when "FTADD" redisearch_client = RediSearch.new(key, @redis) docFields = []; redisearch_client.info().each do | key, value | if value.class == Array if key == "fields" value.each do |item| docFields.push(item[0]) docFields.push(event.get(item[0])) end end end end doc = [[event.sprintf(@docId), docFields]] redisearch_client.add_docs(doc, {replace: true}) end rescue => e @logger.warn("Failed to set event to Redis", :event => event, :identity => identity, :exception => e, :backtrace => e.backtrace) sleep @reconnect_interval @redis = nil retry end end
register()
click to toggle source
# File lib/logstash/outputs/redis_set.rb, line 45 def register require 'redis' require 'redisearch-rb' @redis = nil end
Private Instance Methods
connect()
click to toggle source
# File lib/logstash/outputs/redis_set.rb, line 110 def connect params = { :host => @host, :port => @port, :timeout => @timeout, :db => @db, } @logger.debug("connection params", params) if @password params[:password] = @password.value end Redis.new(params) end