#!/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
-
+# NOTE: you might need to add munin to allow passwordless sudo for passenger-memory-stats
+
+require "English"
+
def output_config
- puts <<-END
-graph_args --base 1024 -l 0 --vertical-label bytes --upper-limit 4056231936
-graph_category passenger
-graph_title Passenger memory
+ puts <<~CONFIG
+ graph_args --base 1024 -l 0 --vertical-label bytes --upper-limit 4056231936
+ graph_category passenger
+ graph_title Passenger memory
-memory.label memory
-END
+ memory.label memory
+ CONFIG
exit 0
end
-
+
def output_values
- status = `/usr/sbin/passenger-memory-stats | tail -1`
- unless $?.success?
- $stderr.puts "failed executing passenger-memory-stats"
+ 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 #{($1.to_f * 1024 * 1024).round}"
+ puts "memory.value #{(Regexp.last_match[1].to_f * 1024 * 1024).round}"
end
-
+
if ARGV[0] == "config"
output_config
else
output_values
end
-