class TingYun::Agent::Collector::MemorySampler
Attributes
sampler[RW]
Public Class Methods
new()
click to toggle source
# File lib/ting_yun/agent/collector/middle_ware_collector/memory_sampler.rb, line 15 def initialize # macos, linux, solaris if platform =~ /linux/ @sampler = ProcStatus.new if !@sampler.can_run? ::TingYun::Agent.logger.debug "Error attempting to use /proc/#{$$}/status file for reading memory. Using ps command instead." @sampler = ShellPS.new("ps -o rsz") else ::TingYun::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/ting_yun/agent/collector/middle_ware_collector/memory_sampler.rb, line 47 def self.platform TingYun::Support::SystemInfo.ruby_os_identifier.downcase end
supported_on_this_platform?()
click to toggle source
# File lib/ting_yun/agent/collector/middle_ware_collector/memory_sampler.rb, line 39 def self.supported_on_this_platform? platform =~ /linux|darwin|freebsd|solaris/ end
Public Instance Methods
platform()
click to toggle source
# File lib/ting_yun/agent/collector/middle_ware_collector/memory_sampler.rb, line 43 def platform TingYun::Support::SystemInfo.ruby_os_identifier.downcase end
poll()
click to toggle source
# File lib/ting_yun/agent/collector/middle_ware_collector/memory_sampler.rb, line 51 def poll sample = @sampler.get_sample if sample TingYun::Agent.record_metric("Memory/NULL/PhysicalUsed", sample) end end