class Itamae::Handler::Fluentd

Attributes

fluent_logger[RW]

Public Class Methods

new(*) click to toggle source
Calls superclass method Itamae::Handler::Base::new
# File lib/itamae/handler/fluentd.rb, line 6
def initialize(*)
  super
  load_fluent_logger
end

Public Instance Methods

event(type, payload = {}) click to toggle source
Calls superclass method Itamae::Handler::Base#event
# File lib/itamae/handler/fluentd.rb, line 11
def event(type, payload = {})
  super

  unless @fluent_logger.post(type, payload.merge(hostname: hostname))
    Itamae.logger.warn "Sending logs to Fluentd failed: #{@fluent_logger.last_error}"
  end
end

Private Instance Methods

fluentd_host() click to toggle source
# File lib/itamae/handler/fluentd.rb, line 35
def fluentd_host
  @options['host'] || 'localhost'
end
fluentd_port() click to toggle source
# File lib/itamae/handler/fluentd.rb, line 39
def fluentd_port
  (@options['port'] || 24224).to_i
end
load_fluent_logger() click to toggle source
# File lib/itamae/handler/fluentd.rb, line 21
def load_fluent_logger
  begin
    require 'fluent-logger'
  rescue LoadError
    raise "Loading fluent-logger gem failed. Please install 'fluent-logger' gem to use fluentd handler."
  end

  @fluent_logger = Fluent::Logger::FluentLogger.new(tag_prefix, host: fluentd_host, port: fluentd_port)
end
tag_prefix() click to toggle source
# File lib/itamae/handler/fluentd.rb, line 31
def tag_prefix
  @options['tag_prefix'] || 'itamae_server'
end