2
# Copyright (C) 2011, 2014 Canonical
4
# Author: Liam Young, Jacek Nykis
6
# Produce a queue data for a given vhost. Useful for graphing and Nagios checks
7
LOCK=/var/lock/rabbitmq-gather-metrics.lock
8
# Check for a lock file and if not, create one
9
lockfile-create -r2 --lock-name $LOCK > /dev/null 2>&1
13
trap "rm -f $LOCK > /dev/null 2>&1" exit
15
# Required to fix the bug about start-stop-daemon not being found in
16
# rabbitmq-server 2.7.1-0ubuntu4.
17
# '/usr/sbin/rabbitmqctl: 33: /usr/sbin/rabbitmqctl: start-stop-daemon: not found'
18
export PATH=${PATH}:/sbin/
20
if [ -f /var/lib/rabbitmq/pids ]; then
21
RABBIT_PID=$(grep "{rabbit\@${HOSTNAME}," /var/lib/rabbitmq/pids | sed -e 's!^.*,\([0-9]*\).*!\1!')
22
elif [ -f /var/run/rabbitmq/pid ]; then
23
RABBIT_PID=$(cat /var/run/rabbitmq/pid)
25
echo "No PID file found"
28
DATA_DIR="/var/lib/rabbitmq/data"
29
DATA_FILE="${DATA_DIR}/$(hostname -s)_queue_stats.dat"
30
LOG_DIR="/var/lib/rabbitmq/logs"
31
RABBIT_STATS_DATA_FILE="${DATA_DIR}/$(hostname -s)_general_stats.dat"
33
HOSTNAME=$(hostname -s)
34
MNESIA_DB_SIZE=$(du -sm /var/lib/rabbitmq/mnesia | cut -f1)
35
RABBIT_RSS=$(ps -p $RABBIT_PID -o rss=)
36
if [ ! -d $DATA_DIR ]; then
39
if [ ! -d $LOG_DIR ]; then
42
echo "#Vhost Name Messages_ready Messages_unacknowledged Messages Consumers Memory Time" > $DATA_FILE
43
/usr/sbin/rabbitmqctl -q list_vhosts | \
45
/usr/sbin/rabbitmqctl -q list_queues -p $VHOST name messages_ready messages_unacknowledged messages consumers memory | \
46
awk "{print \"$VHOST \" \$0 \" $(date +'%s') \"}" >> $DATA_FILE 2>${LOG_DIR}/list_queues.log
48
echo "mnesia_size: ${MNESIA_DB_SIZE}@$NOW" > $RABBIT_STATS_DATA_FILE
49
echo "rss_size: ${RABBIT_RSS}@$NOW" >> $RABBIT_STATS_DATA_FILE