Module: Process::Metrics

Defined in:
lib/process/metrics/version.rb,
lib/process/metrics/host.rb,
lib/process/metrics/memory.rb,
lib/process/metrics/general.rb,
lib/process/metrics/processor.rb,
lib/process/metrics/host/memory.rb,
lib/process/metrics/memory/linux.rb,
lib/process/metrics/general/linux.rb,
lib/process/metrics/memory/darwin.rb,
lib/process/metrics/host/memory/linux.rb,
lib/process/metrics/host/memory/darwin.rb,
lib/process/metrics/general/process_status.rb,
lib/process/metrics/host/memory/linux/meminfo.rb,
lib/process/metrics/host/memory/linux/cgroup_v1.rb,
lib/process/metrics/host/memory/linux/cgroup_v2.rb

Defined Under Namespace

Modules: Host Classes: General, Memory, Processor

Constant Summary collapse

DURATION =
/\A
	(?:(?<days>\d+)-)?              # Optional days (e.g., '2-')
	(?:(?<hours>\d+):)?             # Optional hours (e.g., '1:')
	(?<minutes>\d{1,2}):            # Minutes (always present, 1 or 2 digits)
	(?<seconds>\d{2})               # Seconds (exactly 2 digits)
	(?:\.(?<fraction>\d{1,2}))?     # Optional fraction of a second (e.g., '.27')
\z/x
VERSION =
"0.12.0"

Class Method Summary collapse

Class Method Details

.duration(value) ⇒ Object

Parse a duration string into seconds. According to the linux manual page specifications.



23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/process/metrics/general.rb', line 23

def self.duration(value)
	if match = DURATION.match(value)
		days = match[:days].to_i
		hours = match[:hours].to_i
		minutes = match[:minutes].to_i
		seconds = match[:seconds].to_i
		fraction = match[:fraction].to_i
		
		return days * 24 * 60 * 60 + hours * 60 * 60 + minutes * 60 + seconds + fraction / 100.0
	else
		return 0.0
	end
end