Class: SenorArmando::Plugins::StatsdPlugin

Inherits:
Object
  • Object
show all
Defined in:
lib/senor_armando/plugins/statsd_plugin.rb

Overview

Sends metrics to a remote statsd-compatible server

You might also enjoy using the SenorArmando::Rack::StatsdLogger middleware.

Examples:

plugin SenorArmando::Plugins::StatsdPlugin

Constant Summary collapse

@@recent_latency =
0

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(port, config, status, logger) ⇒ SenorArmando::Plugins::StatsdPlugin

Called by the framework to initialize the plugin

Parameters:

  • port (Integer)

    Unused

  • config (Hash)

    The server configuration data

  • status (Hash)

    A status hash

  • logger (Log4R::Logger)

    The logger



63
64
65
66
67
68
69
# File 'lib/senor_armando/plugins/statsd_plugin.rb', line 63

def initialize(port, config, status, logger)
  @status = status
  @config = config[:statsd_logger] || {}
  @config[:logger] = logger

  @last = Time.now.to_f
end

Instance Attribute Details

#agentObject (readonly)

Returns the value of attribute agent.



54
55
56
# File 'lib/senor_armando/plugins/statsd_plugin.rb', line 54

def agent
  @agent
end

Class Method Details

.agentObject



80
81
82
# File 'lib/senor_armando/plugins/statsd_plugin.rb', line 80

def self.agent
  @@agent
end

.recent_latencyObject



72
73
74
# File 'lib/senor_armando/plugins/statsd_plugin.rb', line 72

def self.recent_latency
  @@recent_latency
end

Instance Method Details

#runObject

Called automatically to start the plugin



85
86
87
88
89
90
91
92
# File 'lib/senor_armando/plugins/statsd_plugin.rb', line 85

def run
  agent
  EM.add_periodic_timer(1) do
    @@recent_latency = (Time.now.to_f - @last)
    agent.timing 'reactor.latency', @@recent_latency
    @last = Time.now.to_f
  end
end