class ServerStatistics
Public Class Methods
get()
click to toggle source
# File lib/server_statistics.rb, line 2 def self.get cpu_rvm_count = `ps -ef | grep rben |wc -l` cpu_count = `ps -ef | wc -l` uptime = `uptime` captures = (`uptime`.match /up (?:(?:(\d+) day?.,)?\s*(\d+):(\d+)|(\d+) min)/) # puts captures.inspect if captures.nil? captures = (`uptime`.match /up (?:(?:(\d+) day?.,)?\s*(\d+) min)/) if captures.nil? captures = (`uptime`.match /up (?:(?:(\d+) day?.,)?\s*(\d+):(\d+) min)/) if captures.nil? captures = (`uptime`.match /up (?:(?:(\d+) day?.,)?\s*(\d+):(\d+))/) # puts captures.captures.inspect captures = captures.captures.insert(3, nil) else # puts captures.captures.inspect captures = captures.captures.insert(3, nil) end else # puts captures.inspect captures = captures.captures.insert(1, nil).insert(3, nil) end else captures = captures.captures end elapsed_seconds = captures.zip([86440, 3600, 60, 60]).inject(0) do |total, (x,y)| total + (x.nil? ? 0 : x.to_i * y) end up = Time.now - elapsed_seconds memory_usage = `free -m | awk '/Mem:/ {total=$2} /Mem:/ {used=$3} END {print used/total*100}'` swap_to_ram_usage = `free -m | awk '/Mem:/ { total=$2 } /Swap:/ { used=$3 } END { print used/total*100}'` cpu_usage = uptime.split.last(3).join(' ') free_hdd = (100 - `df -h | awk '/dev/ {print $5}'`.split("\n")[0].to_i).to_s + '%' hash = { cpu_count: cpu_count.chomp, uptime: up, cpu_rvm_count: cpu_rvm_count.chomp, cpu_usage: cpu_usage, memory_usage: memory_usage.to_f.round(2).to_s, swap_to_ram_usage: swap_to_ram_usage.to_f.round(2).to_s, checked: Time.now, free_disk: free_hdd } return hash end