Class: NetuitiveRailsAgent::Scheduler
- Inherits:
-
Object
- Object
- NetuitiveRailsAgent::Scheduler
- Defined in:
- lib/netuitive_rails_agent/scheduler.rb
Instance Attribute Summary collapse
-
#gc_stats_collector ⇒ Object
readonly
Returns the value of attribute gc_stats_collector.
-
#interaction ⇒ Object
readonly
Returns the value of attribute interaction.
-
#object_space_collector ⇒ Object
readonly
Returns the value of attribute object_space_collector.
Instance Method Summary collapse
- #collect_metrics ⇒ Object
-
#initialize(interaction) ⇒ Scheduler
constructor
A new instance of Scheduler.
- #interval ⇒ Object
- #start_schedule ⇒ Object
Constructor Details
#initialize(interaction) ⇒ Scheduler
Returns a new instance of Scheduler.
6 7 8 9 10 |
# 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 |
Instance Attribute Details
#gc_stats_collector ⇒ Object (readonly)
Returns the value of attribute gc_stats_collector.
3 4 5 |
# File 'lib/netuitive_rails_agent/scheduler.rb', line 3 def gc_stats_collector @gc_stats_collector end |
#interaction ⇒ Object (readonly)
Returns the value of attribute interaction.
5 6 7 |
# File 'lib/netuitive_rails_agent/scheduler.rb', line 5 def interaction @interaction end |
#object_space_collector ⇒ Object (readonly)
Returns the value of attribute object_space_collector.
4 5 6 |
# File 'lib/netuitive_rails_agent/scheduler.rb', line 4 def object_space_collector @object_space_collector end |
Instance Method Details
#collect_metrics ⇒ Object
32 33 34 35 36 37 38 39 |
# 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 ⇒ Object
26 27 28 29 30 |
# File 'lib/netuitive_rails_agent/scheduler.rb', line 26 def interval interval = interaction.interval interval = 60 if interval.nil? interval end |
#start_schedule ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 |
# 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 |