class Daikon::Daemon
Constants
- INFO_INTERVAL
- SUMMARY_INTERVAL
Public Class Methods
run()
click to toggle source
# File lib/daikon/daemon.rb, line 18 def self.run @@run end
run=(run)
click to toggle source
# File lib/daikon/daemon.rb, line 14 def self.run=(run) @@run = run end
sleep_time()
click to toggle source
# File lib/daikon/daemon.rb, line 10 def self.sleep_time @@sleep_time ||= 1 end
sleep_time=(sleep_time)
click to toggle source
# File lib/daikon/daemon.rb, line 6 def self.sleep_time=(sleep_time) @@sleep_time = sleep_time end
start(argv, ontop = false)
click to toggle source
# File lib/daikon/daemon.rb, line 22 def self.start(argv, ontop = false) self.run = true config = Daikon::Configuration.new(argv) if argv.include?("-v") || argv.include?("--version") puts "Daikon v#{VERSION}" return end Daemons.run_proc("daikon", :ARGV => argv, :log_output => true, :backtrace => true, :ontop => ontop) do if argv.include?("run") logger = Logger.new(STDOUT) else logger = Logger.new("/tmp/radish.log") end if port = ENV["PORT"] logger.info "Port detected, starting server on port #{port}" Daikon::Server.start(logger, port) end rotated_at = reported_at = Time.now client = Daikon::Client.new client.setup(config, logger) client.start_monitor while self.run do now = Time.now if now - reported_at >= sleep_time * INFO_INTERVAL.to_i client.report_info reported_at = now end if now - rotated_at >= sleep_time * SUMMARY_INTERVAL.to_i client.rotate_monitor(rotated_at, now) rotated_at = now end sleep sleep_time end end end