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.
-
#write(chunk) ⇒ Object
Sends the event records.
Constructor Details
#initialize ⇒ HTTPOutput
Returns a new instance of HTTPOutput.
26 27 28 29 30 |
# File 'lib/fluent/plugin/out_http.rb', line 26 def initialize require 'fluent/plugin/http/error' super end |
Instance Method Details
#configure(conf) ⇒ Object
Configures the plugin
36 37 38 39 40 41 42 43 |
# File 'lib/fluent/plugin/out_http.rb', line 36 def configure(conf) super @url = validate_url(url) @accept_status_code = validate_accept_status_code(accept_status_code) = () @keep_alive_timeout = validate_keep_alive_timeout(keep_alive_timeout) end |
#format(tag, time, record) ⇒ String
Serializes the event
60 61 62 |
# File 'lib/fluent/plugin/out_http.rb', line 60 def format(tag, time, record) [tag, time, record].to_msgpack end |
#shutdown ⇒ Object
Hook method that is called at the shutdown
48 49 50 51 52 |
# File 'lib/fluent/plugin/out_http.rb', line 48 def shutdown super disconnect end |
#write(chunk) ⇒ Object
Sends the event records
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/fluent/plugin/out_http.rb', line 69 def write(chunk) return if chunk.empty? records = [] chunk.msgpack_each do |tag_time_record| records << (_record = tag_time_record.last) end post_records = post_records_request(records) response = connect.request(post_records) return if accept_status_code.include?(response.code) raise ResponseError.error(post_records, response) end |