class Fluent::Plugin::GelfOutput

Public Instance Methods

configure(conf) click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_gelf.rb, line 16
def configure(conf)
  super
  raise ConfigError, "'host' parameter is required" unless conf.key?("host")
end
format(tag, time, record) click to toggle source
# File lib/fluent/plugin/out_gelf.rb, line 29
def format(tag, time, record)
  make_gelfentry(tag, time, record).to_msgpack
end
formatted_to_msgpack_binary() click to toggle source
# File lib/fluent/plugin/out_gelf.rb, line 51
def formatted_to_msgpack_binary
  true
end
multi_workers_ready?() click to toggle source
# File lib/fluent/plugin/out_gelf.rb, line 55
def multi_workers_ready?
  true
end
shutdown() click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_gelf.rb, line 25
def shutdown
  super
end
start() click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_gelf.rb, line 21
def start
  super
end
write(chunk) click to toggle source
# File lib/fluent/plugin/out_gelf.rb, line 33
def write(chunk) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
  records = []
  chunk.msgpack_each do |record|
    records.push JSON.dump(record) + "\0" # Message delimited by null char
  end

  log.debug "establishing connection with GrayLog"
  socket = TCPSocket.new(@host, @port)

  begin
    log.debug "sending #{records.count} records in batch"
    socket.write(records.join)
  ensure
    log.debug "closing connection with GrayLog"
    socket.close
  end
end