class Fluent::HTTPOutput
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_alertmanager.rb, line 4 def initialize super require 'net/http' require 'uri' require 'yajl' end
Public Instance Methods
configure(_)
click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_alertmanager.rb, line 14 def configure(_) super @uri = URI.parse(@endpoint_url) end
create_request(record)
click to toggle source
# File lib/fluent/plugin/out_alertmanager.rb, line 27 def create_request(record) req = Net::HTTP::Post.new(@uri.path) req.body = Yajl.dump([record]) req['Content-Type'] = 'application/json' return req end
emit(_, es, chain)
click to toggle source
# File lib/fluent/plugin/out_alertmanager.rb, line 56 def emit(_, es, chain) es.each do |_, record| send_alert(record) end chain.next end
send_alert(record)
click to toggle source
# File lib/fluent/plugin/out_alertmanager.rb, line 52 def send_alert(record) send_request(create_request(record)) end
send_request(req)
click to toggle source
# File lib/fluent/plugin/out_alertmanager.rb, line 34 def send_request(req) res = nil begin res = Net::HTTP.start(@uri.host, @uri.port) {|http| http.request(req) } rescue => e $log.error "Net::HTTP::Post raises exception: #{e.class}, '#{e.message}'" else unless res and res.is_a?(Net::HTTPSuccess) res_summary = if res "#{res.code} #{res.message} #{res.body}" else "res=nil" end $log.error "failed to #{req.method} #{@uri} (#{res_summary})" end end end
shutdown()
click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_alertmanager.rb, line 23 def shutdown super end
start()
click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_alertmanager.rb, line 19 def start super end