class ElasticAPM::Metrics::CpuMemSet

def read!

rubocop:disable Metrics/MethodLength, Metrics/AbcSize
def read!
  return if disabled?
  current = @sampler.sample
  unless @previous
    @previous = current
    return
  end
  cpu_usage_pct, cpu_process_pct = calculate_deltas(current, @previous)
  gauge(:'system.cpu.total.norm.pct').value = cpu_usage_pct
  gauge(:'system.memory.actual.free').value = current.system_memory_free
  gauge(:'system.memory.total').value = current.system_memory_total
  gauge(:'system.process.cpu.total.norm.pct').value = cpu_process_pct
  gauge(:'system.process.memory.size').value = current.process_memory_size
  gauge(:'system.process.memory.rss.bytes').value =
    current.process_memory_rss * current.page_size
  @previous = current
end