~le-charmers/charms/trusty/rabbitmq-server/leadership-election

« back to all changes in this revision

Viewing changes to scripts/collect_rabbitmq_stats.sh

  • Committer: Liam Young
  • Date: 2015-05-11 08:03:57 UTC
  • mfrom: (83.1.14 rabbitmq-server)
  • Revision ID: liam.young@canonical.com-20150511080357-3ftop9kxb6o0e3mq
Merged trunk in + LE charmhelper sync

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/bash
 
2
# Copyright (C) 2011, 2014 Canonical
 
3
# All Rights Reserved
 
4
# Author: Liam Young, Jacek Nykis
 
5
 
 
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
 
10
if [ $? -ne 0 ]; then
 
11
    exit 1
 
12
fi
 
13
trap "rm -f $LOCK > /dev/null 2>&1" exit
 
14
 
 
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/
 
19
 
 
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)
 
24
else
 
25
    echo "No PID file found"
 
26
    exit 3
 
27
fi
 
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"
 
32
NOW=$(date +'%s')
 
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
 
37
    mkdir -p $DATA_DIR
 
38
fi
 
39
if [ ! -d $LOG_DIR ]; then
 
40
    mkdir -p $LOG_DIR
 
41
fi
 
42
echo "#Vhost Name Messages_ready Messages_unacknowledged Messages Consumers Memory Time" > $DATA_FILE
 
43
/usr/sbin/rabbitmqctl -q list_vhosts | \
 
44
while read VHOST; do
 
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
 
47
done
 
48
echo "mnesia_size: ${MNESIA_DB_SIZE}@$NOW" > $RABBIT_STATS_DATA_FILE
 
49
echo "rss_size: ${RABBIT_RSS}@$NOW" >> $RABBIT_STATS_DATA_FILE