class ScoutApm::Instruments::Process::ProcessMemory
Public Class Methods
Source
# File lib/scout_apm/instruments/process/process_memory.rb, line 21 def initialize(context) @context = context end
Public Instance Methods
Source
# File lib/scout_apm/instruments/process/process_memory.rb, line 33 def human_name "Process Memory" end
Source
# File lib/scout_apm/instruments/process/process_memory.rb, line 53 def logger @context.logger end
Source
# File lib/scout_apm/instruments/process/process_memory.rb, line 29 def metric_name "Physical" end
Source
# File lib/scout_apm/instruments/process/process_memory.rb, line 25 def metric_type "Memory" end
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
Source
# File lib/scout_apm/instruments/process/process_memory.rb, line 13 def rss ::Process.rusage.maxrss end
Source
# File lib/scout_apm/instruments/process/process_memory.rb, line 17 def rss_in_mb rss_to_mb(rss) end
Source
# 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
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.
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