Class: OneApm::Collector::Samplers::MemorySampler

Inherits:
OneApm::Collector::Sampler show all
Defined in:
lib/one_apm/collector/samplers/memory_sampler.rb

Instance Attribute Summary

Attributes inherited from OneApm::Collector::Sampler

#id

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from OneApm::Collector::Sampler

enabled?, inherited, #initialize, name, named, sampler_classes

Constructor Details

This class inherits a constructor from OneApm::Collector::Sampler

Class Method Details

.platformObject



44
45
46
47
48
49
50
# File 'lib/one_apm/collector/samplers/memory_sampler.rb', line 44

def self.platform
  if RUBY_PLATFORM =~ /java/
    %x[uname -s].downcase
  else
    RUBY_PLATFORM.downcase
  end
end

.supported_on_this_platform?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/one_apm/collector/samplers/memory_sampler.rb', line 40

def self.supported_on_this_platform?
  defined?(::JRuby) or platform =~ /linux|darwin|freebsd|solaris/
end

Instance Method Details

#get_sampleObject



27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/one_apm/collector/samplers/memory_sampler.rb', line 27

def get_sample
  begin
    m = @poller.memory 
    if m.nil?
      OneApm::Manager.logger.warn "Unable to get the resident memory for process #{$$}.  Disabling memory sampler."
    end
    return m
  rescue => e
    OneApm::Manager.logger.warn "Unable to get the resident memory for process #{$$}. Disabling memory sampler.", e
    return nil
  end
end

#platformObject



16
17
18
# File 'lib/one_apm/collector/samplers/memory_sampler.rb', line 16

def platform
  OneApm::Collector::Samplers::MemorySampler.platform
end

#pollObject



20
21
22
23
24
25
# File 'lib/one_apm/collector/samplers/memory_sampler.rb', line 20

def poll
  sample = get_sample
  if sample
    OneApm::Manager.record_metric("Memory/Used", sample)
  end
end

#set_poller(poller) ⇒ Object



12
13
14
# File 'lib/one_apm/collector/samplers/memory_sampler.rb', line 12

def set_poller poller
  @poller = poller
end