Last active
November 5, 2019 14:17
-
-
Save esebastian/7c0da2ce67b3497a6bbc9cc808f21868 to your computer and use it in GitHub Desktop.
Munin plugins for Passenger
This file contains hidden or 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
Munin plugins for Passenger: | |
- Put the files passenger_status and passenger_memory_status in /etc/munin/plugins | |
- Configure the Passenger instance registry directory in Apache, nginx or Passenger Standalone to /var/run/passenger | |
- Edit /etc/munin/plugin-conf.d/munin-node to include: | |
[passenger_*] | |
user root | |
env.PASSENGER_INSTANCE_REGISTRY_DIR /var/run/passenger | |
command ruby %c | |
- Restart munin-node |
This file contains hidden or 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 | |
# put in /etc/munin/plugins and restart munin-node | |
# Adapted from 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 | |
def output_config | |
puts <<-END | |
graph_category passenger | |
graph_title Passenger memory stats | |
graph_vlabel count | |
memory.label memory | |
END | |
exit 0 | |
end | |
def output_values | |
status = `/usr/sbin/passenger-memory-stats | tail -1` | |
unless $?.success? | |
$stderr.puts "failed executing passenger-memory-stats" | |
exit 1 | |
end | |
status =~ /(\d+\.\d+)/ | |
puts "memory.value #{$1}" | |
end | |
if ARGV[0] == "config" | |
output_config | |
else | |
output_values | |
end |
This file contains hidden or 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 | |
# put in /etc/munin/plugins and restart munin-node | |
# Adapted from 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-status | |
def output_config | |
puts <<-END | |
graph_category passenger | |
graph_title passenger status | |
graph_vlabel count | |
sessions.label sessions | |
max.label max processes | |
running.label running processes | |
active.label active processes | |
END | |
exit 0 | |
end | |
def output_values | |
status = `/usr/sbin/passenger-status` | |
unless $?.success? | |
$stderr.puts "failed executing passenger-status" | |
exit 1 | |
end | |
status =~ /Max pool size\s+:\s+(\d+)/ | |
puts "max.value #{$1}" | |
status =~ /App groups\s+:\s+(\d+)/ | |
puts "running.value #{$1}" | |
status =~ /Processes\s+:\s+(\d+)/ | |
puts "active.value #{$1}" | |
total_sessions = 0 | |
status.scan(/Sessions: (\d+)/).flatten.each { |count| total_sessions += count.to_i } | |
puts "sessions.value #{total_sessions}" | |
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