class ElasticAPM::Metrics::CpuMem::Linux

@api private

Constants

RSS_POS
STIME_POS
UTIME_POS
VSIZE_POS

Public Instance Methods

sample() click to toggle source

rubocop:disable Metrics/MethodLength, Metrics/AbcSize

# File lib/elastic_apm/metrics/cpu_mem.rb, line 104
def sample
  proc_stat = ProcStat.new.read!
  proc_self_stat = ProcSelfStat.new.read!
  meminfo = Meminfo.new.read!

  Sample.new(
    system_cpu_total: proc_stat.total,
    system_cpu_usage: proc_stat.usage,
    system_memory_total: meminfo.total,
    system_memory_free: meminfo.available,
    process_cpu_usage: proc_self_stat.total,
    process_memory_size: proc_self_stat.vsize,
    process_memory_rss: proc_self_stat.rss,
    page_size: meminfo.page_size
  )
end