class GraphiteApiMiddleware::Server
Attributes
client[R]
client_id[R]
Public Class Methods
default_options()
click to toggle source
# File lib/graphite-api-middleware.rb, line 57 def self.default_options GraphiteAPI::Client.default_options. tap {|opts| opts.delete :backends}. merge interval: 60, pid: '/var/run/graphite-api-middleware.pid' end
new(client, logger)
click to toggle source
# File lib/graphite-api-middleware.rb, line 28 def initialize client, logger @client = client @logger = logger end
start(options, logger)
click to toggle source
# File lib/graphite-api-middleware.rb, line 63 def self.start options, logger EventMachine.run do GraphiteAPI::Logger.logger = logger logger.info "Server running on port #{options[:port]}" client = GraphiteAPI::Client.new options # Starting server [:start_server, :open_datagram_socket].each do |method_name| EventMachine.send(method_name, '0.0.0.0', options[:port], self, client, logger) end end end
stop()
click to toggle source
# File lib/graphite-api-middleware.rb, line 77 def self.stop EventMachine.stop end
Public Instance Methods
post_init()
click to toggle source
# File lib/graphite-api-middleware.rb, line 35 def post_init @client_id = peername @logger.debug [:middleware, :connecting, client_id] end
receive_data(data)
click to toggle source
# File lib/graphite-api-middleware.rb, line 40 def receive_data data @logger.debug [:middleware, :message, client_id, data] client.stream data, client_id end
unbind()
click to toggle source
# File lib/graphite-api-middleware.rb, line 45 def unbind @logger.debug [:middleware, :disconnecting, client_id] client.cancel end
Private Instance Methods
peername()
click to toggle source
# File lib/graphite-api-middleware.rb, line 50 def peername port, *ip = get_peername[2,6].unpack "nC4" [ip.join("."),port].join ":" end