Sha256: 927cc530e317d265452cb6b4f7e04888f63b1cb0e8b91c17c5ed10d7231bf716
Contents?: true
Size: 1.57 KB
Versions: 18
Compression:
Stored size: 1.57 KB
Contents
require "vmc/cli/app/base" module VMC::App class Stats < Base desc "Display application instance status" group :apps, :info input :app, :desc => "Application to get the stats for", :argument => true, :from_given => by_name(:app) def stats app = input[:app] stats = with_progress("Getting stats for #{c(app.name, :name)}") do |s| begin app.stats rescue CFoundry::StatsError s.fail do err "Application #{b(app.name)} is not running." return end end end line unless quiet? table( %w{instance cpu memory disk}, stats.sort_by { |idx, _| idx.to_i }.collect { |idx, info| idx = c("\##{idx}", :instance) if info[:state] == "DOWN" [idx, c("down", :bad)] else stats = info[:stats] usage = stats[:usage] if usage [ idx, "#{percentage(usage[:cpu])}", "#{usage(usage[:mem], stats[:mem_quota])}", "#{usage(usage[:disk], stats[:disk_quota])}" ] else [idx, c("n/a", :neutral)] end end }) end def percentage(num, low = 50, mid = 70) color = if num <= low :good elsif num <= mid :warning else :bad end c(format("%.1f\%", num), color) end def usage(used, limit) "#{b(human_size(used))} of #{b(human_size(limit, 0))}" end end end
Version data entries
18 entries across 18 versions & 1 rubygems