Class: LogStash::Codecs::CompressSpooler
- Inherits:
-
Base
- Object
- Base
- LogStash::Codecs::CompressSpooler
- Defined in:
- lib/logstash/codecs/compress_spooler.rb
Instance Method Summary collapse
-
#close ⇒ Object
def encode.
- #decode(data) ⇒ Object
-
#encode(event) ⇒ Object
def decode.
- #register ⇒ Object
Instance Method Details
#close ⇒ Object
def encode
41 42 43 44 45 |
# File 'lib/logstash/codecs/compress_spooler.rb', line 41 def close return if @buffer.empty? @on_event.call(compress(@buffer, @compress_level)) @buffer.clear end |
#decode(data) ⇒ Object
23 24 25 26 27 |
# File 'lib/logstash/codecs/compress_spooler.rb', line 23 def decode(data) decompress(data).each do |event| yield(LogStash::Event.new(event)) end end |
#encode(event) ⇒ Object
def decode
29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/logstash/codecs/compress_spooler.rb', line 29 def encode(event) # use normalize to make sure returned Hash is pure Ruby for # MessagePack#pack which relies on pure Ruby object recognition @buffer << LogStash::Util.normalize(event.to_hash).merge(LogStash::Event::TIMESTAMP => event..to_iso8601) # If necessary, we flush the buffer and get the data compressed if @buffer.length >= @spool_size || time_to_flush? @on_event.call(compress(@buffer, @compress_level)) @buffer.clear @last_flush = Time.now.to_i end end |
#register ⇒ Object
16 17 18 19 20 21 |
# File 'lib/logstash/codecs/compress_spooler.rb', line 16 def register require "msgpack" require "zlib" @buffer = [] @last_flush = Time.now.to_i end |