Sha256: 03ab030fd5541715e527294e54754c57648889c8c91988ba005fdf3f51851067
Contents?: true
Size: 1.33 KB
Versions: 3
Compression:
Stored size: 1.33 KB
Contents
module ServState class LogManager class << self def start @@min = Rotator.new(120) # with 5 sec delay => 10 minutes @@day = Rotator.new(150) @@counter = 0 end def update(params) @@counter += 1 @@min.append(params) if @@counter % @@min.size == 0 @@day.append(normalize(@@min.data)) end end def data(type) case type when '1day' then get_hash(@@day) when '10min' then get_hash(@@min) end end private def get_hash(object) { cpu: object.data.each_with_index.map{ |x, i| { x: i, y: x[0] } }, ram: object.data.each_with_index.map{ |x, i| { x: i, y: x[1] } }, down: object.data.each_with_index.map{ |x, i| { x: i, y: x[2] } }, up: object.data.each_with_index.map{ |x, i| { x: i, y: x[3] } } } end def normalize(data) result = Hash.new p data result[:cpu] = data.inject(0){ |sum, n| sum + n[0] } / data.size result[:ram] = data.inject(0){ |sum, n| sum + n[1] } / data.size result[:down] = data.inject(0){ |sum, n| sum + n[2] } / data.size result[:up] = data.inject(0){ |sum, n| sum + n[3] } / data.size result end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
ServState-0.1.2 | lib/ServState/log_manager.rb |
ServState-0.1.1 | lib/ServState/log_manager.rb |
ServState-0.1.0 | lib/ServState/log_manager.rb |