class NetuitiveRailsAgent::Scheduler
Attributes
gc_stats_collector[R]
interaction[R]
object_space_collector[R]
Public Class Methods
new(interaction)
click to toggle source
# File lib/netuitive_rails_agent/scheduler.rb, line 6 def initialize(interaction) @gc_stats_collector = NetuitiveRailsAgent::GCStatsCollector.new(interaction) @object_space_collector = NetuitiveRailsAgent::ObjectSpaceStatsCollector.new(interaction) @interaction = interaction end
Public Instance Methods
collect_metrics()
click to toggle source
# File lib/netuitive_rails_agent/scheduler.rb, line 32 def collect_metrics NetuitiveRailsAgent::NetuitiveLogger.log.debug 'start collecting schedule metrics' NetuitiveRailsAgent::ErrorLogger.guard('error during collect_metrics') do gc_stats_collector.collect if NetuitiveRailsAgent::ConfigManager.gc_enabled object_space_collector.collect if NetuitiveRailsAgent::ConfigManager.object_space_enabled end NetuitiveRailsAgent::NetuitiveLogger.log.debug 'finshed collecting schedule metrics' end
interval()
click to toggle source
# File lib/netuitive_rails_agent/scheduler.rb, line 26 def interval interval = interaction.interval interval = 60 if interval.nil? interval end
start_schedule()
click to toggle source
# File lib/netuitive_rails_agent/scheduler.rb, line 12 def start_schedule NetuitiveRailsAgent::NetuitiveLogger.log.debug 'starting schedule' Thread.new do loop do NetuitiveRailsAgent::ErrorLogger.guard('error during schedule') do collect_metrics sleep_time = interval NetuitiveRailsAgent::NetuitiveLogger.log.debug "scheduler sleeping for: #{sleep_time}" sleep(sleep_time) end end end end