332.3.1
by Florian Hines
recon middlewear for the object server and utils for cluster monitoring |
1 |
#!/bin/bash
|
2 |
||
3 |
#ghetto temporary cronjob to pull some of the stats for swift-recon
|
|
4 |
#usage: swift-recon-cron /var/log/swift/storage.log
|
|
5 |
# run it as frequently as you like, will skip runs during periods
|
|
6 |
# of high async pendings when the find takes a while.
|
|
7 |
#todo: everything.
|
|
8 |
||
332.3.2
by Florian Hines
few fixes to temp cronjob |
9 |
SYSLOG_FACILITY="local2" |
332.3.1
by Florian Hines
recon middlewear for the object server and utils for cluster monitoring |
10 |
ASYNC_PATH="/srv/node/sd[a-z]/async_pending/" |
332.3.2
by Florian Hines
few fixes to temp cronjob |
11 |
RECON_CACHE_PATH="/var/cache/swift" |
332.3.1
by Florian Hines
recon middlewear for the object server and utils for cluster monitoring |
12 |
|
13 |
LOCKFILE="/var/lock/swift-recon-object.lock" |
|
14 |
if [ -e $LOCKFILE ]; then |
|
15 |
echo "NOTICE - $0 lock present - cron jobs overlapping ?" |
|
332.3.2
by Florian Hines
few fixes to temp cronjob |
16 |
echo "$0 lock file present" | /usr/bin/logger -p $SYSLOG_FACILITY.err |
332.3.1
by Florian Hines
recon middlewear for the object server and utils for cluster monitoring |
17 |
exit 1 |
18 |
else
|
|
19 |
touch $LOCKFILE
|
|
20 |
fi
|
|
21 |
||
332.3.2
by Florian Hines
few fixes to temp cronjob |
22 |
|
332.3.1
by Florian Hines
recon middlewear for the object server and utils for cluster monitoring |
23 |
if [ -z "$1" ]; then |
24 |
LOGFILE="/var/log/swift/storage.log" |
|
25 |
else
|
|
26 |
LOGFILE=$1 |
|
27 |
fi
|
|
28 |
||
29 |
if [ ! -r "$LOGFILE" ]; then |
|
332.3.2
by Florian Hines
few fixes to temp cronjob |
30 |
echo "$0: error $LOGFILE not readable" | /usr/bin/logger -p $SYSLOG_FACILITY.err |
332.3.1
by Florian Hines
recon middlewear for the object server and utils for cluster monitoring |
31 |
rm $LOCKFILE
|
32 |
exit 1 |
|
33 |
fi
|
|
34 |
||
332.3.2
by Florian Hines
few fixes to temp cronjob |
35 |
if [ ! -d "$RECON_CACHE_PATH" ]; then |
36 |
mkdir $RECON_CACHE_PATH
|
|
37 |
fi
|
|
38 |
||
332.3.1
by Florian Hines
recon middlewear for the object server and utils for cluster monitoring |
39 |
TMPF=`/bin/mktemp` |
40 |
||
41 |
asyncs=$(find $ASYNC_PATH -type f 2> /dev/null| wc -l) |
|
42 |
#asyncs=$(find /srv/[1-4]/node/sd[a-z]1/async_pending/ -type f 2> /dev/null| wc -l) #saio
|
|
43 |
objrep=$(grep "Object replication complete." $LOGFILE | tail -n 1 | awk '{print $9}' | sed -e 's/(//g') |
|
44 |
objincoming=$(netstat -aln | egrep "tcp.*:6000.*:.*ESTABLISHED" -c) |
|
45 |
#objtw=$(netstat -aln | egrep "tcp.*:6000.*:.*TIME_WAIT" -c)
|
|
46 |
||
47 |
echo "{\"async_pending\":$asyncs, \"object_replication_time\":$objrep, \"object_established_conns\":$objincoming}" > $TMPF |
|
48 |
||
332.3.2
by Florian Hines
few fixes to temp cronjob |
49 |
mv $TMPF $RECON_CACHE_PATH/object.recon |
50 |
if [ $? -ne 0 ]; then |
|
51 |
echo "$0: $TMPF rename failed" | /usr/bin/logger -p $SYSLOG_FACILITY.err |
|
52 |
rm -f $TMPF $LOCKFILE |
|
53 |
exit 1 |
|
54 |
fi
|
|
332.3.1
by Florian Hines
recon middlewear for the object server and utils for cluster monitoring |
55 |
rm -f $TMPF $LOCKFILE |
56 |
exit 0 |