class Fluent::SumologicOutput
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_sumologic.rb, line 21 def initialize super end
Public Instance Methods
configure(conf)
click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_sumologic.rb, line 25 def configure(conf) super end
format(tag, time, record)
click to toggle source
# File lib/fluent/plugin/out_sumologic.rb, line 33 def format(tag, time, record) [tag, time, record].to_msgpack end
shutdown()
click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_sumologic.rb, line 37 def shutdown super end
start()
click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_sumologic.rb, line 29 def start super end
write(chunk)
click to toggle source
# File lib/fluent/plugin/out_sumologic.rb, line 41 def write(chunk) messages_list = {} case @format when 'json' chunk.msgpack_each do |tag, time, record| if @include_tag_key record.merge!(@tag_key => tag) end if @include_time_key record.merge!(@time_key => @timef.format(time)) end source_name = record[@source_name_key] || '' record.delete(@source_name_key) messages_list[source_name] = [] unless messages_list[source_name] messages_list[source_name] << record.to_json end when 'text' chunk.msgpack_each do |tag, time, record| source_name = record[@source_name_key] || '' messages_list[source_name] = [] unless messages_list[source_name] messages_list[source_name] << record['message'] end end if ENV.has_key?("http_proxy") (proxy,proxy_port) = ENV['http_proxy'].split(':') http = Net::HTTP::Proxy(proxy,proxy_port).new(@host, @port.to_i) else http = Net::HTTP.new(@host, @port.to_i) end http.use_ssl = true http.verify_mode = @verify_ssl ? OpenSSL::SSL::VERIFY_PEER : OpenSSL::SSL::VERIFY_NONE http.set_debug_output $stderr messages_list.each do |source_name, messages| request = Net::HTTP::Post.new(@path) request['X-Sumo-Name'] = source_name unless source_name.empty? request.body = messages.join("\n") response = http.request(request) unless response.is_a?(Net::HTTPSuccess) raise "Failed to send data to #{@host}. #{response.code} #{response.message}" end end end