Class: Fluent::HTTPOutput
- Inherits:
-
BufferedOutput
- Object
- BufferedOutput
- 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.
19 20 21 22 23 |
# File 'lib/fluent/plugin/out_http.rb', line 19 def initialize require 'fluent/plugin/http/error' super end |
Instance Method Details
#configure(conf) ⇒ Object
Configures the plugin
29 30 31 32 33 34 |
# File 'lib/fluent/plugin/out_http.rb', line 29 def configure(conf) super @url = validate_url(url) @accept_status_code = validate_accept_status_code(accept_status_code) end |
#format(tag, time, record) ⇒ String
Serializes the event
61 62 63 |
# File 'lib/fluent/plugin/out_http.rb', line 61 def format(tag, time, record) [tag, time, record].to_msgpack end |
#shutdown ⇒ Object
Hook method that is called at the shutdown
49 50 51 52 53 |
# File 'lib/fluent/plugin/out_http.rb', line 49 def shutdown super http.finish end |
#start ⇒ Object
Hook method that is called at the startup
39 40 41 42 43 44 |
# File 'lib/fluent/plugin/out_http.rb', line 39 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
70 71 72 73 74 75 76 77 78 79 |
# File 'lib/fluent/plugin/out_http.rb', line 70 def write(chunk) records = [] chunk.msgpack_each { |_tag, _time, record| records << record } 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 |