X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/0b310e3c9e2fa2f0fb717160677dfc90cbc04df4..7eb3680b81fdf339e466d9279584805f17a54c0f:/cookbooks/munin/files/default/plugins/passenger_queues?ds=inline diff --git a/cookbooks/munin/files/default/plugins/passenger_queues b/cookbooks/munin/files/default/plugins/passenger_queues index 60be63389..a5467660c 100755 --- a/cookbooks/munin/files/default/plugins/passenger_queues +++ b/cookbooks/munin/files/default/plugins/passenger_queues @@ -1,26 +1,44 @@ #!/usr/bin/env ruby require "English" +require "rexml/document" + +def passenger_status + @passenger_status ||= REXML::Document.new(`/usr/sbin/passenger-status --show=xml`) +end def output_config - puts <<-END -graph_category passenger -graph_title Passenger queues -graph_vlabel count - -global.label global -END - exit 0 + puts <<~CONFIG + graph_args --lower-limit 0 + graph_category passenger + graph_title Passenger queues + graph_vlabel count + + global.label global + global.draw AREA + CONFIG + + groups = passenger_status.get_elements("//supergroup").map do |supergroup| + supergroup.text("name") + end + + groups.sort.each do |name| + puts "#{name}.label #{name}" + puts "#{name}.draw STACK" + end end def output_values - status = `/usr/sbin/passenger-status` - unless $CHILD_STATUS.success? - $stderr.puts "failed executing passenger-status" - exit 1 + global = passenger_status.text("/item/get_wait_list").to_i + + puts "global.value #{global}" + + passenger_status.get_elements("//supergroup").each do |supergroup| + name = supergroup.text("name") + queue = supergroup.text("get_wait_list").to_i + + puts "#{name}.value #{queue}" end - status =~ /Requests in top-level queue :\s+(\d+)/ - puts "global.value #{Regexp.last_match[1]}" end if ARGV[0] == "config"