#!/usr/bin/env ruby # 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 require "English" def output_config puts <<~CONFIG graph_args --base 1024 -l 0 --vertical-label bytes --upper-limit 4056231936 graph_category passenger graph_title Passenger memory memory.label memory CONFIG exit 0 end def output_values status = `/usr/sbin/passenger-memory-stats | tail -1` unless $CHILD_STATUS.success? warn "failed executing passenger-memory-stats" exit 1 end status =~ /(\d+\.\d+)/ puts "memory.value #{(Regexp.last_match[1].to_f * 1024 * 1024).round}" end if ARGV[0] == "config" output_config else output_values end