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