server/data_providers/cpu_info.rb in bloopletech-webstats-0.1.0 vs server/data_providers/cpu_info.rb in bloopletech-webstats-0.2.0

- old
+ new

@@ -1,7 +1,9 @@ class DataProviders::CpuInfo - def initialize + def initialize(settings) + @settings = self.class.default_settings.merge(settings) + @readings = [] @mutex = Mutex.new @thread = Thread.new do last_time = last_user = last_nice = last_system = last_idle = last_iowait = 0 @@ -29,22 +31,22 @@ last_nice = nice last_system = system last_idle = idle last_iowait = iowait last_time = time - sleep(2.5) + sleep(@settings[:update_rate]) end end end def get out = { :usage => 0 } @mutex.synchronize do unless @readings.empty? out[:usage] = @readings.first - out[:status] = 'warning' unless @readings.detect { |r| out[:usage] < 95 } - out[:status] = 'danger' unless @readings.detect { |r| out[:usage] < 99.5 } + out[:status] = 'warning' unless @readings.detect { |r| out[:usage] < @settings[:usage_warning_level] } + out[:status] = 'danger' unless @readings.detect { |r| out[:usage] < @settings[:usage_danger_level] } end end out[:loadavg_1], out[:loadavg_5], out[:loadavg_15] = IO.readlines("/proc/loadavg").first.split(' ', 4).map { |v| v.to_f } out end @@ -56,15 +58,15 @@ "</span><span class='unit'>1m</span><span class='divider'>/</span><span class='figure'>" + data_source['loadavg_5'] + "</span><span class='unit'>5m</span><span class='divider'>/</span><span class='figure'>" + data_source['loadavg_15'] + "</span><span class='unit'>15m</span></div>"; } }) end - def information - { :name => "CPU Info", :in_sentence => 'CPU load', :importance => importance } + def self.default_settings + { :update_rate => 2.5, :usage_warning_level => 95, :usage_danger_level => 99.5 } end - def importance - 100 + def information + { :name => "CPU Info", :in_sentence => 'CPU load', :importance => 100 } end def kill @thread.kill end \ No newline at end of file