class Rapporteur::Checks::LoadCheck

Constants

DEFAULT_TOLERANCE

Public Class Methods

call(checker) click to toggle source
# File lib/rapporteur/load_check.rb, line 35
def self.call(checker)
  new.call(checker)
end
current_load() click to toggle source
# File lib/rapporteur/load_check.rb, line 39
def self.current_load
  loadavg = FFI::MemoryPointer.new(:double, 1)
  if getloadavg(loadavg, 1) == -1
    raise SystemCallError, "getloadavg() - #{strerror(FFI.errno)}"
  end
  loadavg.read_double
end
new(tolerance=DEFAULT_TOLERANCE) click to toggle source
# File lib/rapporteur/load_check.rb, line 20
def initialize(tolerance=DEFAULT_TOLERANCE)
  @tolerance = tolerance
end

Public Instance Methods

call(checker) click to toggle source
# File lib/rapporteur/load_check.rb, line 24
def call(checker)
  loadavg = self.class.current_load

  if loadavg > @tolerance
    checker.add_error(:load, :excessive, :tolerance => @tolerance, :value => loadavg)
    checker.halt!
  else
    checker.add_message(:load, loadavg)
  end
end