class ServState::CpuUsage

Attributes

usage[R]

Public Class Methods

new() click to toggle source
# File lib/ServState/cpu_usage.rb, line 20
def initialize
  @old = Hash.new
  @old[:cpu_usage], @old[:cpu_usage_total] = proc_stat_values
  @usage = 0
  sleep 1
end

Public Instance Methods

update() click to toggle source
# File lib/ServState/cpu_usage.rb, line 6
def update
  usage, total = proc_stat_values

  usage_diff = usage - @old[:cpu_usage]
  total_diff = total - @old[:cpu_usage_total]

  @old[:cpu_usage]       = usage
  @old[:cpu_usage_total] = total

  @usage = ((usage_diff / total_diff.to_f) * 100).to_i
end

Private Instance Methods

proc_stat_values() click to toggle source
# File lib/ServState/cpu_usage.rb, line 27
def proc_stat_values
  stat_line   = IO.readlines('/proc/stat').grep(/^cpu /).first.split
  stat_values = stat_line.map{ |element| element.to_i }
  total = stat_values.inject(:+)
  usage = stat_values[1..3].inject(:+)
  [usage, total]
end