Class: GraphiteApiMiddleware::Server
- Inherits:
-
EventMachine::Connection
- Object
- EventMachine::Connection
- GraphiteApiMiddleware::Server
- Defined in:
- lib/graphite-api-middleware.rb
Instance Attribute Summary collapse
-
#buffer ⇒ Object
readonly
Returns the value of attribute buffer.
-
#client_id ⇒ Object
readonly
Returns the value of attribute client_id.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(buffer, logger) ⇒ Server
constructor
A new instance of Server.
- #post_init ⇒ Object
- #receive_data(data) ⇒ Object
- #unbind ⇒ Object
Constructor Details
#initialize(buffer, logger) ⇒ Server
Returns a new instance of Server.
28 29 30 31 |
# File 'lib/graphite-api-middleware.rb', line 28 def initialize buffer, logger @buffer = buffer and super @logger = logger end |
Instance Attribute Details
#buffer ⇒ Object (readonly)
Returns the value of attribute buffer.
33 34 35 |
# File 'lib/graphite-api-middleware.rb', line 33 def buffer @buffer end |
#client_id ⇒ Object (readonly)
Returns the value of attribute client_id.
33 34 35 |
# File 'lib/graphite-api-middleware.rb', line 33 def client_id @client_id end |
Class Method Details
.default_options ⇒ Object
56 57 58 |
# File 'lib/graphite-api-middleware.rb', line 56 def self. GraphiteAPI::Client..merge interval: 60, pid: '/var/run/graphite-api-middleware.pid' end |
.start(options, logger) ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/graphite-api-middleware.rb', line 60 def self.start , logger EventMachine.run do GraphiteAPI::Logger.logger = logger logger.info "Server running on port #{options[:port]}" buffer = GraphiteAPI::Buffer.new group = GraphiteAPI::Connector::Group.new # Starting server [:start_server, :open_datagram_socket].each do |m| EventMachine.send(m, '0.0.0.0', [:port], self, buffer, logger) end # Send metrics to graphite every X seconds Zscheduler.every([:interval], :on_shutdown => true) do group.publish buffer.pull :string if buffer.new_records? end end end |
Instance Method Details
#post_init ⇒ Object
35 36 37 38 |
# File 'lib/graphite-api-middleware.rb', line 35 def post_init @client_id = peername @logger.debug [:middleware, :connecting, client_id] end |
#receive_data(data) ⇒ Object
40 41 42 43 |
# File 'lib/graphite-api-middleware.rb', line 40 def receive_data data @logger.debug [:middleware, :message, client_id, data] buffer.stream data, client_id end |
#unbind ⇒ Object
45 46 47 |
# File 'lib/graphite-api-middleware.rb', line 45 def unbind @logger.debug [:middleware, :disconnecting, client_id] end |