class Goliath::Chimp::Plugin::ActivityMonitor
Attributes
logger[R]
previous[R]
status[R]
Public Class Methods
new(address, port, config, status, logger)
click to toggle source
# File lib/goliath/chimp/plugins/activity_monitor.rb, line 7 def initialize(address, port, config, status, logger) @status = status @logger = logger @previous = Time.now.to_f end
Public Instance Methods
latency()
click to toggle source
# File lib/goliath/chimp/plugins/activity_monitor.rb, line 25 def latency snapshot = Time.now.to_f laten = snapshot - previous @previous = snapshot laten end
report(metric)
click to toggle source
# File lib/goliath/chimp/plugins/activity_monitor.rb, line 32 def report metric logger.debug metric end
run(options = {})
click to toggle source
# File lib/goliath/chimp/plugins/activity_monitor.rb, line 13 def run(options = {}) interval = options[:window] || 60 EM::Synchrony.add_periodic_timer(interval) do current = latency status[:reactor] = { latency: current, ratio: (current / interval).round(6), } report status end end