Class: LogStash::Codecs::CompressSpooler

Inherits:
Base
  • Object
show all
Defined in:
lib/logstash/codecs/compress_spooler.rb

Instance Method Summary collapse

Instance Method Details

#closeObject

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.timestamp.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

#registerObject



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