Class: Process::Metrics::Host::Memory::Linux::Meminfo

Inherits:
Object
  • Object
show all
Defined in:
lib/process/metrics/host/memory/linux/meminfo.rb

Overview

Captures host memory from Linux /proc/meminfo.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.supported?Boolean

Whether /proc/meminfo is available.

Returns:

  • (Boolean)


13
14
15
# File 'lib/process/metrics/host/memory/linux/meminfo.rb', line 13

def self.supported?
	File.exist?("/proc/meminfo")
end

Instance Method Details

#captureObject

Capture host memory from /proc/meminfo.



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/process/metrics/host/memory/linux/meminfo.rb', line 19

def capture
	content = File.read("/proc/meminfo") rescue nil
	return nil unless content
	
	total = read_total(content)
	return nil unless total && total.positive?
	
	used = read_used(content, total)
	used = 0 if used.nil? || used.negative?
	used = [used, total].min
	
	swap_total, swap_used = read_swap(content)
	reclaimable = read_reclaimable(content)
	
	return Host::Memory.new(total, used, swap_total, swap_used, reclaimable)
end