mirror of
https://github.com/cmur2/munin-rabbitmq.git
synced 2024-12-22 12:54:27 +01:00
7f8033a541
fixed the sed expression to match dashes as well .-= -> .=- updated the perl regexs to match the sed ones renamed the plugins to work with munin 1.2.5
76 lines
2.2 KiB
Bash
Executable File
76 lines
2.2 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Plugin to monitor the queues of a virtual_host in RabbitMQ
|
|
#
|
|
# Usage: Link or copy into /etc/munin/node.d/
|
|
#
|
|
# Parameters
|
|
# env.vhost <AMQ virtual host>
|
|
# env.queue_warn <warning queuesize>
|
|
# env.queue_crit <critical queuesize>
|
|
#
|
|
# Magic markers (optional - only used by munin-config and some
|
|
# installation scripts):
|
|
#
|
|
#%# family=auto
|
|
#%# capabilities=autoconf
|
|
|
|
# If run with the "autoconf"-parameter, give our opinion on wether we
|
|
# should be run on this system or not. This is optinal, and only used by
|
|
# munin-config. In the case of this plugin, we should most probably
|
|
# always be included.
|
|
|
|
if [ "$1" = "autoconf" ]; then
|
|
echo yes
|
|
exit 0
|
|
fi
|
|
|
|
# If run with the "config"-parameter, give out information on how the
|
|
# graphs should look.
|
|
|
|
HOME=/tmp/
|
|
VHOST=${vhost:-"/"}
|
|
QUEUES=$(HOME=$HOME rabbitmqctl list_queues -p $VHOST name | \
|
|
grep -v '^Listing' | \
|
|
grep -v 'done\.$' | sed -e 's/[.=-]/_/g' )
|
|
|
|
if [ "$1" = "config" ]; then
|
|
QUEUE_WARN=${queue_warn:-10000}
|
|
QUEUE_CRIT=${queue_crit:-20000}
|
|
|
|
# The host name this plugin is for. (Can be overridden to have
|
|
# one machine answer for several)
|
|
|
|
# The title of the graph
|
|
echo "graph_title RabbitMQ $VHOST list_queues"
|
|
# Arguments to "rrdtool graph". In this case, tell it that the
|
|
# lower limit of the graph is '0', and that 1k=1000 (not 1024)
|
|
echo 'graph_args --base 1000 -l 0'
|
|
# The Y-axis label
|
|
echo 'graph_vlabel queue_size'
|
|
# We want Cur/Min/Avg/Max unscaled (i.e. 0.42 load instead of
|
|
# 420 milliload)
|
|
#echo 'graph_scale no'
|
|
echo 'graph_category RabbitMQ'
|
|
|
|
for queue in $QUEUES; do
|
|
echo "$queue.label $queue"
|
|
echo "$queue.warning $QUEUE_WARN"
|
|
echo "$queue.critical $QUEUE_CRIT"
|
|
echo "$queue.info Queue size for $queue"
|
|
done
|
|
|
|
echo 'graph_info Lists how many messages are in each queue.'
|
|
# Last, if run with the "config"-parameter, quit here (don't
|
|
# display any data)
|
|
exit 0
|
|
fi
|
|
|
|
# If not run with any parameters at all (or only unknown ones), do the
|
|
# real work - i.e. display the data. Almost always this will be
|
|
# "value" subfield for every data field.
|
|
|
|
HOME=$HOME rabbitmqctl list_queues -p $VHOST | \
|
|
grep -v "^Listing" | grep -v "done.$" | \
|
|
perl -nle'($q, $s) = split; $q =~ s/[.=-]/_/g; print("$q.value $s")'
|