55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
# File 'lib/logstash/filters/redis.rb', line 55
def filter(event)
return unless filter?(event)
key = event.sprintf(@key)
relevant = [@store_tag, @retrieve_tag].select do |t|
event["tags"].include?(t)
end
@logger.debug(relevant)
return unless [] != relevant
if event["tags"].include?(@retrieve_tag)
@logger.debug("Found retrieve tag %{retrieve_tag}")
@redis ||= connect
val = @redis.get(key)
if val != nil
@logger.debug("Found key in Redis")
JSON.parse(val).each do |k,v|
event[prefix + k] = v
end
if @delete
@redis.del(key) && @logger.debug("Deleted key")
end
else
@logger.debug("Key not found in Redis")
end
end
if event["tags"].include?(@store_tag)
@logger.debug("Found store tag %{store_tag}")
val = event.to_hash().select { |name,value| fields.include?(name) }
@redis ||= connect
@redis.set(key, val.to_json) && @logger.debug("Stored key")
@redis.expire(key, @expiry) && @logger.debug("Set expiry key")
end
filter_matched(event)
end
|