class TingYun::Agent::Collector::MemorySampler::Base

Public Class Methods

new() click to toggle source
# File lib/ting_yun/agent/collector/middle_ware_collector/memory_sampler.rb, line 59
def initialize
  @broken = false
end

Public Instance Methods

can_run?() click to toggle source
# File lib/ting_yun/agent/collector/middle_ware_collector/memory_sampler.rb, line 63
def can_run?
  return false if @broken
  m = get_memory rescue nil
  m && m > 0
end
get_memory() click to toggle source
# File lib/ting_yun/agent/collector/middle_ware_collector/memory_sampler.rb, line 69
def get_memory
  raise 'Implement in the subclass'
end
get_sample() click to toggle source
# File lib/ting_yun/agent/collector/middle_ware_collector/memory_sampler.rb, line 73
def get_sample
  return nil if @broken
  begin
    m = get_memory
    if m.nil?
      ::TingYun::Agent.logger.warn "Unable to get the resident memory for process #{$$}.  Disabling memory sampler."
      @broken = true
    end
    return m
  rescue => e
    ::TingYun::Agent.logger.warn "Unable to get the resident memory for process #{$$}. Disabling memory sampler.", e
    @broken = true
    return nil
  end
end