name 'new line delimeter json transport' always_start true ignore_errors true default[:host], default[:port] = Kurchatov::Config[:nsjson_transport].to_s.split(":") run_if do !!plugin.host end helpers do def mutex @mutex ||= Mutex.new end def flush @tcpsocket ||= TCPSocket.new(plugin.host, plugin.port.to_i) @events_to_send ||= events.to_flush if !@events_to_send.empty? @message = {"events" => @events_to_send}.to_json Log.info("Message: #{@message}") mutex.synchronize { @tcpsocket.puts(@message) } end @events_to_send = nil end def flush_or_exit flush rescue (exit 99) end end run do Log.info("Start with #{plugin.host}:#{plugin.port}") loop { flush_or_exit; sleep 1 } end