class CpuMemoryStats::Bsd

Public Instance Methods

cpu() click to toggle source
# File lib/modules/bsd.rb, line 38
def cpu
  stats[:cpu]
end
get_stats() click to toggle source
# File lib/modules/bsd.rb, line 8
def get_stats

  output = { :cpu => {} }

  output[:load_avg] = `sysctl -n vm.loadavg`.gsub(/\{|\}/,"").strip.split(" ").collect{|i| i.strip.to_f.round(2)}

  cpu = `sysctl -n kern.cp_time`.strip.split(" ").collect{|i| i.strip.to_i}
  cpu_start = Hash[[:user, :nice, :system, :interupt, :idle].zip(cpu)]
  sleep(0.01)
  cpu = `sysctl -n kern.cp_time`.strip.split(" ").collect{|i| i.strip.to_i}
  cpu_end = Hash[[:user, :nice, :system, :interupt, :idle].zip(cpu)]

  cpu_end.each do |key, value|
    output[:cpu][key] = value - cpu_start[key]
  end

  output[:memory] = {
    :wired => `sysctl -n vm.stats.vm.v_wire_count`.to_i,
    :active => `sysctl -n vm.stats.vm.v_active_count`.to_i,
    :inactive => `sysctl -n vm.stats.vm.v_inactive_count`.to_i,
    :used => 0,       #fix missing columns
    :free => `sysctl -n vm.stats.vm.v_free_count`.to_i
  }
  output
end
load_avg() click to toggle source
# File lib/modules/bsd.rb, line 42
def load_avg
  stats[:load_avg]
end
memory() click to toggle source
# File lib/modules/bsd.rb, line 46
def memory
  stats[:memory]
end
stats() click to toggle source
# File lib/modules/bsd.rb, line 34
def stats
  @stats ||= get_stats
end