Class: Takwimu::ResourceUsage

Inherits:
Panel
  • Object
show all
Defined in:
lib/takwimu/resource_usage.rb

Instance Method Summary collapse

Methods inherited from Panel

#instrument, #instrument!, #start!

Constructor Details

#initialize(sample_rate) ⇒ ResourceUsage

Returns a new instance of ResourceUsage.



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/takwimu/resource_usage.rb', line 28

def initialize(sample_rate)
  super()

  require 'takwimu/instruments/puma_backlog'
  backlog_reporter = Takwimu::Instruments::PumaBacklog.new

  if backlog_reporter.valid?
    instrument backlog_reporter
  end

  ## NOTE: To get passenger stats you must be running Passenger as a user with sudo access

  require 'takwimu/instruments/passenger_stats'
  passenger_stats_reporter = Takwimu::Instruments::PassengerStats.new

  if passenger_stats_reporter.valid?
    Takwimu.config.logger.debug "Takwimu.ResourceUsage.initialize - Setting up Passenger Instrumentation" if Takwimu.config.logger
    instrument passenger_stats_reporter
  end


  require 'takwimu/instruments/stopwatch'
  instrument Takwimu::Instruments::Stopwatch.new

  if GC.respond_to? :enable_stats
    require 'takwimu/instruments/ree_gc'
    instrument Takwimu::Instruments::Ruby18GC.new
  end

  # Ruby 1.9+
  if ObjectSpace.respond_to? :count_objects
    require 'takwimu/instruments/object_space_counter'
    instrument Takwimu::Instruments::ObjectSpaceCounter.new
  end

  # Ruby 1.9+
  if GC.respond_to?(:stat)
    require 'takwimu/instruments/ruby_gc'
    instrument Takwimu::Instruments::RubyGC.new(sample_rate)
  end

  # Ruby 2.1+ with https://github.com/tmm1/gctools
  if defined? GC::OOB
    require 'takwimu/instruments/gctools_oobgc'
    instrument Takwimu::Instruments::GctoolsOobgc.new
  end
end