mirror of
https://github.com/zulip/zulip.git
synced 2025-11-02 13:03:29 +00:00
The old "zulip_internal" name was from back when Zulip, Inc. had two distributions of Zulip, the enterprise distribution in puppet/zulip/ and the "internal" SAAS distribution in puppet/zulip_internal. I think the name is a bit confusing in the new fully open-source Zulip work, so we're replacing it with "zulip_ops". I don't think the new name is perfect, but it's better. In the following commits, we'll delete a bunch of pieces of Zulip, Inc.'s infrastructure that don't exist anymore and thus are no longer useful (e.g. the old Trac configuration), with the goal of cleaning the repository of as much unnecessary content as possible.
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 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 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 | \
|
|
grep -v "^Listing" | grep -v "done.$" | \
|
|
perl -nle'($q, $s) = split; $q =~ s/[.=-]/_/g; print("$q.value $s")'
|