Created
September 2, 2010 16:07
-
-
Save mvaled/562483 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby | |
# -*- coding: utf-8 -*- | |
# put in /etc/munin/plugins and restart munin-node | |
# by Dan Manges, | |
# http://www.dcmanges.com/blog/rails-application-visualization-with-munin | |
# NOTE: you might need to add munin to allow passwordless sudo for | |
# passenger-memory-stats | |
# 2010-09-02 | |
# Modified by Manuel Vázquez Acosta | |
# Reports also total memory, used, and cached to get an | |
# integrated view of the passenger memory consumption | |
def get_gen(what) | |
status = `cat /proc/meminfo | grep ^#{what}` | |
unless $?.success? | |
return nil | |
end | |
status =~ /(\d+)/ | |
return $1.to_i * 1024 | |
end | |
def get_memtotal | |
return get_gen "MemTotal" | |
end | |
def get_cached | |
return get_gen "Cached" | |
end | |
def get_free | |
return get_gen "MemFree" | |
end | |
def get_used | |
return get_memtotal() - get_free() | |
end | |
def output_config | |
memtotal = get_memtotal | |
puts <<-END | |
graph_category Applications | |
graph_title Passenger Memory Stats | |
graph_vlabel memory in MB | |
graph_args --base 1024 --lower-limit 0 --upper-limit #{memtotal} | |
memory.label memory | |
used.label used | |
cached.label cached | |
total.label total | |
END | |
exit 0 | |
end | |
def output_values | |
status = `sudo /usr/bin/passenger-memory-stats | tail -1` | |
unless $?.success? | |
$stderr.puts "failed executing passenger-memory-stats" | |
exit 1 | |
end | |
status =~ /(\d+\.\d+)/ | |
# Times 1024 since passenger-memory-stats reports MB | |
puts "memory.value #{$1.to_i * 1024 * 1024}" | |
puts "used.value #{get_used}" | |
puts "cached.value #{get_cached}" | |
puts "total.value #{get_memtotal}" | |
end | |
if ARGV[0] == "config" | |
output_config | |
else | |
output_values | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Updated to match the base