class LitmusPaper::Metric::CPULoad

Public Class Methods

new(weight) click to toggle source
# File lib/litmus_paper/metric/cpu_load.rb, line 4
def initialize(weight)
  @weight = weight
end

Public Instance Methods

current_health() click to toggle source
# File lib/litmus_paper/metric/cpu_load.rb, line 8
def current_health
  [@weight - (@weight * load_average / processor_count), 1].max
end
load_average() click to toggle source
# File lib/litmus_paper/metric/cpu_load.rb, line 23
def load_average
  File.read('/proc/loadavg').split(' ').first.to_f
end
processor_count() click to toggle source
# File lib/litmus_paper/metric/cpu_load.rb, line 12
def processor_count
  @processor_count ||= File.readlines('/proc/cpuinfo').reduce(0) do |memo, line|
    if line =~ /^processor/
      memo + 1
    else
      memo
    end
  end

end
stats() click to toggle source
# File lib/litmus_paper/metric/cpu_load.rb, line 27
def stats
  {
    :cpu_load_average => load_average,
  }
end
to_s() click to toggle source
# File lib/litmus_paper/metric/cpu_load.rb, line 33
def to_s
  "Metric::CPULoad(#{@weight})"
end