Created
August 25, 2010 23:07
-
-
Save jakimowicz/550475 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 | |
def output_config | |
puts <<-END | |
graph_category passenger | |
graph_title status | |
graph_vlabel count | |
graph_info This graph shows how much passenger process are working, available and how much queries are waiting. | |
max.label max processes | |
max.draw AREA | |
max.info Maximum processes allowed to run simultaneously. | |
sessions.label queued requests | |
sessions.draw LINE2 | |
sessions.info Requests queued, waiting to be processed. | |
running.label running processes | |
running.draw LINE1 | |
running.info The number of application instances that are currently alive. | |
active.label active processes | |
active.draw LINE1 | |
active.info The number of application instances that are currently processing requests. | |
waiting.label waiting requests | |
waiting.draw LINE2 | |
waiting.info Requests waiting to be queued. | |
END | |
exit 0 | |
end | |
def output_values | |
status = `sudo passenger-status` | |
unless $?.success? | |
$stderr.puts "failed executing passenger-status" | |
exit 1 | |
end | |
status =~ /max\s+=\s+(\d+)/ | |
puts "max.value #{$1}" | |
status =~ /count\s+=\s+(\d+)/ | |
puts "running.value #{$1}" | |
status =~ /active\s+=\s+(\d+)/ | |
puts "active.value #{$1}" | |
status =~ /Waiting on global queue:\s+(\d+)/ | |
puts "waiting.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