Class: TingYun::Agent::Collector::MemorySampler
- Defined in:
- lib/ting_yun/agent/collector/middle_ware_collector/memory_sampler.rb
Defined Under Namespace
Classes: Base, ProcStatus, ShellPS
Instance Attribute Summary collapse
-
#sampler ⇒ Object
Returns the value of attribute sampler.
Attributes inherited from Sampler
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize ⇒ MemorySampler
constructor
A new instance of MemorySampler.
- #platform ⇒ Object
- #poll ⇒ Object
Methods inherited from Sampler
enabled?, inherited, name, named, sampler_classes
Constructor Details
#initialize ⇒ MemorySampler
Returns a new instance of MemorySampler.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# 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 |
Instance Attribute Details
#sampler ⇒ Object
Returns the value of attribute sampler.
13 14 15 |
# File 'lib/ting_yun/agent/collector/middle_ware_collector/memory_sampler.rb', line 13 def sampler @sampler end |
Class Method Details
.platform ⇒ Object
47 48 49 |
# 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? ⇒ Boolean
39 40 41 |
# 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 |
Instance Method Details
#platform ⇒ Object
43 44 45 |
# 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 ⇒ Object
51 52 53 54 55 56 |
# 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 |