summaryrefslogtreecommitdiff
path: root/chef-expander/scripts
diff options
context:
space:
mode:
authorDaniel DeLeo <dan@opscode.com>2011-02-08 16:17:08 -0800
committerDaniel DeLeo <dan@opscode.com>2011-02-08 16:17:08 -0800
commit96ec333390afde0038c77640a816523dd58c6c17 (patch)
treebd9b3b56a8c6d98fd8b05e653cd5a3f3cdbb9e41 /chef-expander/scripts
parent9961a7ab75a9c40cd359f78f22189440b7b30a7a (diff)
downloadchef-96ec333390afde0038c77640a816523dd58c6c17.tar.gz
import munin plugin for chef-expander
Diffstat (limited to 'chef-expander/scripts')
-rwxr-xr-xchef-expander/scripts/check_queue_size_munin51
1 files changed, 51 insertions, 0 deletions
diff --git a/chef-expander/scripts/check_queue_size_munin b/chef-expander/scripts/check_queue_size_munin
new file mode 100755
index 0000000000..c0725196db
--- /dev/null
+++ b/chef-expander/scripts/check_queue_size_munin
@@ -0,0 +1,51 @@
+#!/usr/bin/env ruby
+
+require 'rubygems'
+require 'munin_plugin'
+Dir.chdir(File.join(File.expand_path(File.dirname(__FILE__)), "..")) do
+ require 'bunny'
+
+ $:.unshift(File.expand_path('../../lib', __FILE__))
+ require 'chef/expander'
+ require 'chef/expander/version'
+ require 'chef/expander/configuration'
+
+ include Chef
+
+munin_plugin do
+ graph_title "Expander Queue Size"
+ graph_vlabel "Events"
+ graph_category "Opscode"
+ graph_info "Events in the Expander Queue waiting to be consumed by Solr."
+ queuesize.label "events"
+ queuesize.draw "LINE"
+ queuesize.warning "100"
+ queuesize.critical "200"
+
+ collect do
+
+ Expander.init_config([])
+
+ message_counts = []
+
+ begin
+ amqp_client = Bunny.new(Expander.config.amqp_config)
+ amqp_client.start
+
+ 0.upto(Expander::VNODES - 1) do |vnode|
+ q = amqp_client.queue("vnode-#{vnode}", :durable => true)
+ message_counts << q.status[:message_count]
+ end
+ total_messages = message_counts.inject(:+)
+
+ ensure
+ amqp_client.stop if defined?(amqp_client) && amqp_client && amqp_client.connected?
+ end
+
+ queuesize.value total_messages
+
+ end
+
+
+ end
+end