class Fluent::Plugin::ArchagentOutput
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_archagent.rb, line 5 def initialize super require 'net/http' require 'uri' end
Public Instance Methods
configure(conf)
click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_archagent.rb, line 15 def configure(conf) super endpoint_url = 'http://localhost:' + @port # Check if endpoint URL is valid unless endpoint_url =~ /^#{URI.regexp}$/ fail Fluent::ConfigError, 'port invalid' end begin @uri = URI.parse(endpoint_url) rescue URI::InvalidURIError raise Fluent::ConfigError, 'port invalid' end end
connect()
click to toggle source
# File lib/fluent/plugin/out_archagent.rb, line 64 def connect @http ||= Net::HTTP.start( @uri.host, @uri.port, keep_alive_timeout: 60.0 ) end
disconnect()
click to toggle source
# File lib/fluent/plugin/out_archagent.rb, line 72 def disconnect return unless defined?(@http) return unless @http @http.finish end
format(tag, time, record)
click to toggle source
# File lib/fluent/plugin/out_archagent.rb, line 31 def format(tag, time, record) [tag, time, record].to_msgpack end
shutdown()
click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_archagent.rb, line 39 def shutdown super disconnect end
start()
click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_archagent.rb, line 35 def start super end
write(chunk)
click to toggle source
# File lib/fluent/plugin/out_archagent.rb, line 45 def write(chunk) log_data = [] chunk.msgpack_each do |(tag, time, record)| record['host'] = (record.has_key? 'host') && record['host'] != nil && record['host'] != "" ? \ record['host'].to_s : 'unknown' record['code'] = (record.has_key? 'code') && record['code'] != nil && record['code'] != "" ? \ record['code'].to_i : -1 record['size'] = (record.has_key? 'size') && record['size'] != nil && record['size'] != "" ? \ record['size'].to_i : -1 record['latency'] = (record.has_key? 'latency') && record['latency'] != nil && \ record['latency'] != "" ? record['latency'].to_i : -1 log_data << record end log_data_req = create_request(log_data) response = connect.request(log_data_req) return end
Protected Instance Methods
create_request(data)
click to toggle source
# File lib/fluent/plugin/out_archagent.rb, line 80 def create_request(data) request = Net::HTTP::Post.new(@uri.request_uri) # Headers request['Content-Type'] = 'application/json' # Body request.body = JSON.dump(data) request end