class Mmtrix::Agent::Samplers::MemorySampler
Attributes
sampler[RW]
Public Class Methods
new()
click to toggle source
# File lib/mmtrix/agent/samplers/memory_sampler.rb, line 16 def initialize # macos, linux, solaris if defined? JRuby @sampler = JavaHeapSampler.new elsif platform =~ /linux/ @sampler = ProcStatus.new if !@sampler.can_run? ::Mmtrix::Agent.logger.debug "Error attempting to use /proc/#{$$}/status file for reading memory. Using ps command instead." @sampler = ShellPS.new("ps -o rsz") else ::Mmtrix::Agent.logger.debug "Using /proc/#{$$}/status for reading process memory." end elsif platform =~ /darwin9/ # 10.5 @sampler = ShellPS.new("ps -o rsz") elsif platform =~ /darwin1\d+/ # >= 10.6 @sampler = ShellPS.new("ps -o rss") elsif platform =~ /freebsd/ @sampler = ShellPS.new("ps -o rss") elsif platform =~ /solaris/ @sampler = ShellPS.new("/usr/bin/ps -o rss -p") end raise Unsupported, "Unsupported platform for getting memory: #{platform}" if @sampler.nil? raise Unsupported, "Unable to run #{@sampler}" unless @sampler.can_run? end
platform()
click to toggle source
# File lib/mmtrix/agent/samplers/memory_sampler.rb, line 46 def self.platform if RUBY_PLATFORM =~ /java/ %x[uname -s].downcase else RUBY_PLATFORM.downcase end end
supported_on_this_platform?()
click to toggle source
# File lib/mmtrix/agent/samplers/memory_sampler.rb, line 42 def self.supported_on_this_platform? defined?(JRuby) or platform =~ /linux|darwin|freebsd|solaris/ end
Public Instance Methods
platform()
click to toggle source
# File lib/mmtrix/agent/samplers/memory_sampler.rb, line 53 def platform Mmtrix::Agent::Samplers::MemorySampler.platform end
poll()
click to toggle source
# File lib/mmtrix/agent/samplers/memory_sampler.rb, line 57 def poll sample = @sampler.get_sample if sample Mmtrix::Agent.record_metric("Memory/Physical", sample) end end