Class: Fluent::HTTPOutput
- Inherits:
-
ObjectBufferedOutput
- Object
- ObjectBufferedOutput
- Fluent::HTTPOutput
- Defined in:
- lib/fluent/plugin/out_http.rb,
lib/fluent/plugin/http/error.rb
Overview
The out_http buffered output plugin sends event records via HTTP.
Constant Summary collapse
- ResponseError =
Unsuccessful response error
Class.new(StandardError) do def self.error(request, response) new "Failed to POST event records to #{request.uri} because of " \ "unsuccessful response code: #{response.code.inspect} " \ "#{response.body.inspect}" end end
Instance Method Summary collapse
-
#configure(conf) ⇒ Object
Configures the plugin.
-
#format(tag, time, record) ⇒ String
Serializes the event.
-
#initialize ⇒ HTTPOutput
constructor
A new instance of HTTPOutput.
-
#shutdown ⇒ Object
Hook method that is called at the shutdown.
-
#start ⇒ Object
Hook method that is called at the startup.
-
#write(chunk) ⇒ Object
Sends the event records.
Constructor Details
#initialize ⇒ HTTPOutput
Returns a new instance of HTTPOutput.
23 24 25 26 27 |
# File 'lib/fluent/plugin/out_http.rb', line 23 def initialize require 'fluent/plugin/http/error' super end |
Instance Method Details
#configure(conf) ⇒ Object
Configures the plugin
33 34 35 36 37 38 39 |
# File 'lib/fluent/plugin/out_http.rb', line 33 def configure(conf) super @url = validate_url(url) @accept_status_code = validate_accept_status_code(accept_status_code) @authorization_token = () end |
#format(tag, time, record) ⇒ String
Serializes the event
66 67 68 |
# File 'lib/fluent/plugin/out_http.rb', line 66 def format(tag, time, record) [tag, time, record].to_msgpack end |
#shutdown ⇒ Object
Hook method that is called at the shutdown
54 55 56 57 58 |
# File 'lib/fluent/plugin/out_http.rb', line 54 def shutdown super http.finish end |
#start ⇒ Object
Hook method that is called at the startup
44 45 46 47 48 49 |
# File 'lib/fluent/plugin/out_http.rb', line 44 def start super is_https = url.scheme == 'https' @http = Net::HTTP.start(url.host, url.port, use_ssl: is_https) end |
#write(chunk) ⇒ Object
Sends the event records
75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/fluent/plugin/out_http.rb', line 75 def write(chunk) records = [] chunk.msgpack_each do |tag_time_record| records << (_record = tag_time_record.last) end post_records = post_records_request(records) response = http.request(post_records) return if accept_status_code.include?(response.code) raise ResponseError.error(post_records, response) end |