Class: TingYun::Agent::Collector::MemorySampler::ProcStatus

Inherits:
Base
  • Object
show all
Defined in:
lib/ting_yun/agent/collector/middle_ware_collector/memory_sampler.rb

Overview

ProcStatus

A class that samples memory by reading the file /proc/$$/status, which is specific to linux

Instance Method Summary collapse

Methods inherited from Base

#can_run?, #get_sample, #initialize

Constructor Details

This class inherits a constructor from TingYun::Agent::Collector::MemorySampler::Base

Instance Method Details

#get_memoryObject

Returns the amount of resident memory this process is using in MB



118
119
120
121
122
123
124
# File 'lib/ting_yun/agent/collector/middle_ware_collector/memory_sampler.rb', line 118

def get_memory
  proc_status = File.open(proc_status_file, "r") {|f| f.read_nonblock(4096).strip }
  if proc_status =~ /RSS:\s*(\d+) kB/i
    return $1.to_f / 1024.0
  end
  raise "Unable to find RSS in #{proc_status_file}"
end

#proc_status_fileObject



126
127
128
# File 'lib/ting_yun/agent/collector/middle_ware_collector/memory_sampler.rb', line 126

def proc_status_file
  "/proc/#{$$}/status"
end

#to_sObject



130
131
132
# File 'lib/ting_yun/agent/collector/middle_ware_collector/memory_sampler.rb', line 130

def to_s
  "proc status file sampler: #{proc_status_file}"
end