Plugin Helper: Socket
require 'fluent/plugin/output'
module Fluent::Plugin
class ExampleOutput < Output
Fluent::Plugin.register_output('example', self)
# 1. Load socket helper
helpers :socket
config_param :host, :string
config_param :port, :integer
# Omit `configure`, `shutdown` and other plugin APIs
def try_write(chunk)
# 2. Create socket
socket = socket_create(:tcp, @host, @port)
chunk.each do |time, record|
# 3. Write data to socket
socket.write(record.to_json)
end
ensure
# 4. Close socket
socket.close if socket
end
end
endMethods
socket_create(proto, host, port, **kwargs, &block)
socket_create(proto, host, port, **kwargs, &block)socket_create_tcp(host, port, **kwargs, &block)
socket_create_tcp(host, port, **kwargs, &block)send_keepalive_packet Use Case
send_keepalive_packet Use Casesocket_create_udp(host, port, **kwargs, &block)
socket_create_udp(host, port, **kwargs, &block)socket_create_tls(host, port, **kwargs, &block)
socket_create_tls(host, port, **kwargs, &block)Plugins using socket
socketLast updated
Was this helpful?