Parent

Included Modules

GraphiteAPI::Middleware

Public Class Methods

new(buffer) click to toggle source
# File lib/graphite-api/middleware.rb, line 29
def initialize buffer
  @buffer = buffer and super
end
start(options) click to toggle source
# File lib/graphite-api/middleware.rb, line 56
def self.start options
  EventMachine.run do
    GraphiteAPI::Logger.info "Server running on port #{options[:port]}"
    
    buffer = GraphiteAPI::Buffer.new options
    group  = GraphiteAPI::Connector::Group.new options
    
    # Starting server
    [:start_server, :open_datagram_socket].each do |m|
      EventMachine.send(m,'0.0.0.0',options[:port],self,buffer)
    end

    # Send metrics to graphite every X seconds
    Zscheduler.every(options[:interval], :on_shutdown => true) do
      group.publish buffer.pull :string if buffer.new_records?
    end

  end  
end

Public Instance Methods

post_init() click to toggle source
# File lib/graphite-api/middleware.rb, line 35
def post_init
  @client_id = peername
  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
  debug [:middleware, :message, client_id, data]
  buffer.stream data, client_id
end
unbind() click to toggle source
# File lib/graphite-api/middleware.rb, line 45
def unbind
  debug [:middleware, :disconnecting, client_id]
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.