class LoadAverage
Public Class Methods
new()
click to toggle source
# File lib/sensu-plugins-load-checks/load-average.rb, line 2 def initialize @cores = cpu_count @avg = load_avg end
Public Instance Methods
cpu_count()
click to toggle source
# File lib/sensu-plugins-load-checks/load-average.rb, line 17 def cpu_count if File.exist?('/proc/cpuinfo') File.read('/proc/cpuinfo').scan(/^processor/).count else `sysctl -n hw.ncpu`.to_i end rescue StandardError 0 end
exceed?(thresholds)
click to toggle source
# File lib/sensu-plugins-load-checks/load-average.rb, line 31 def exceed?(thresholds) @avg.zip(thresholds).any? { |a, t| a >= t } end
failed?()
click to toggle source
# File lib/sensu-plugins-load-checks/load-average.rb, line 27 def failed? @avg.nil? || @cores.zero? end
load_avg()
click to toggle source
# File lib/sensu-plugins-load-checks/load-average.rb, line 7 def load_avg if File.exist?('/proc/loadavg') # linux File.read('/proc/loadavg').split.take(3).map { |a| (a.to_f / @cores).round(2) } rescue nil # rubocop:disable RescueModifier else # fallback for FreeBSD `uptime`.split(' ')[-3..-1].map(&:to_f).map { |a| (a.to_f / @cores).round(2) } rescue nil # rubocop:disable RescueModifier end end
to_s()
click to toggle source
# File lib/sensu-plugins-load-checks/load-average.rb, line 35 def to_s @avg.join(', ') end
total()
click to toggle source
# File lib/sensu-plugins-load-checks/load-average.rb, line 39 def total @avg.map { |a| (a / @cores) }.join(', ') end