class Takwimu::ResourceUsage

Public Class Methods

new(sample_rate) click to toggle source
Calls superclass method Takwimu::Panel::new
# 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