class ScoutApm::Instruments::Process::ProcessMemory
Public Class Methods
new(context)
click to toggle source
# File lib/scout_apm/instruments/process/process_memory.rb, line 21 def initialize(context) @context = context end
Public Instance Methods
human_name()
click to toggle source
# File lib/scout_apm/instruments/process/process_memory.rb, line 33 def human_name "Process Memory" end
logger()
click to toggle source
# File lib/scout_apm/instruments/process/process_memory.rb, line 53 def logger @context.logger end
metric_name()
click to toggle source
# File lib/scout_apm/instruments/process/process_memory.rb, line 29 def metric_name "Physical" end
metric_type()
click to toggle source
# File lib/scout_apm/instruments/process/process_memory.rb, line 25 def metric_type "Memory" end
metrics(timestamp, store)
click to toggle source
# File lib/scout_apm/instruments/process/process_memory.rb, line 37 def metrics(timestamp, store) result = run if result meta = MetricMeta.new("#{metric_type}/#{metric_name}") stat = MetricStats.new(false) stat.update!(result) store.track!({ meta => stat }, :timestamp => timestamp) else {} end end
rss()
click to toggle source
# File lib/scout_apm/instruments/process/process_memory.rb, line 13 def rss ::Process.rusage.maxrss end
rss_in_mb()
click to toggle source
# File lib/scout_apm/instruments/process/process_memory.rb, line 17 def rss_in_mb rss_to_mb(rss) end
rss_to_mb(rss)
click to toggle source
Account for Darwin returning maxrss in bytes and Linux in KB. Used by the slow converters. Doesn't feel like this should go here though…more of a utility.
# File lib/scout_apm/instruments/process/process_memory.rb, line 8 def rss_to_mb(rss) kilobyte_adjust = @context.environment.os == 'darwin' ? 1024 : 1 rss.to_f / 1024 / kilobyte_adjust end
run()
click to toggle source
# File lib/scout_apm/instruments/process/process_memory.rb, line 49 def run rss_in_mb.tap { |res| logger.debug "#{human_name}: #{res.inspect}" } end