-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcolimon
131 lines (123 loc) · 4.55 KB
/
colimon
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#!/bin/ksh
#Potaje6
#Script to monit AMQ queues with colores
#https://github.com/LukeSavefrogs/column_ansi
EXEC_DIR=$(dirname $0)
EXEC_NAME=$(basename $0)
Q_TEMPFILE=/var/tmp/${EXEC_NAME}.$$
T_TEMPFILE=/var/tmp/2_${EXEC_NAME}.$$
bold=$(tput bold)
normal=$(tput sgr0)
red=$(tput setaf 1)
yellow=$(tput setaf 3)
green=$(tput setaf 2)
i=0
trap force_exit SIGINT SIGTERM
force_exit(){
rm -f $Q_TEMPFILE
rm -f $Q_TEMPFILE
exit
}
##CHANGE CREDENTIALS!!##
USER=admin
PASSWD=password
QUEUES_URL=http://amqre.local:8161/admin
##Thresholds
THR_MESS=30000
#THR_CONS=0
#THR_ENQ=0
#THR_DEQ=0
#T_THR_CONS=0
T_THR_ENQ=30000
#T_THR_DEQ=0
if [ -z $1 ]; then
INTERVAL=10
else
INTERVAL=$1
fi
#curl -s --user admin:admin http://amqre.renfe.atm.tmob.cat:8161/admin/queues.jsp | grep -A4 "QUEUE</a>\|DLQ</a>" | sed -z 's/<\/td>\n/ /g' | sed 's/<\/a> <td>/ Messages:/' | sed 's/ <td>/ Consumers: /' | sed 's/ <td>/ Enqueued: /' | sed -z 's/<td>/ Dequeued: /g' | sed 's/--//' | sed 's/: /:/g' | sed 's/ [A-Z][a-z]*:/ /g' |
echo "${yellow}getting AMQ QUEUES state each $INTERVAL seconds${normal}"
while true ; do
#QUEUE
curl -s --user ${USER}:${PASSWD} ${QUEUES_URL}/queues.jsp | grep -A4 "QUEUE</a>\|DLQ</a>" | sed -z 's/<\/td>\n/ /g' | sed 's/<\/a> <td>/ Messages:/' | sed 's/ <td>/ Consumers: /' | sed 's/ <td>/ Enqueued: /' | sed -z 's/<td>/ Dequeued: /g' | sed 's/--//' | sed 's/: /:/g' | sed 's/ [A-Z][a-z]*:/ /g' > $Q_TEMPFILE; echo >> $Q_TEMPFILE
cat $Q_TEMPFILE | while read QUEUE[$i] MESS[$i] CONS[$i] ENQ[$i] DEQ[$i]; do
if [ -z "${OLD_QUEUE[$i]}" ]; then
OLD_QUEUE[$i]=${QUEUE[$i]}
OLD_MESS[$i]=${MESS[$i]}
OLD_CONS[$i]=${CONS[$i]}
OLD_ENQ[$i]=${ENQ[$i]}
OLD_DEQ[$i]=${DEQ[$i]}
else
if [ ${MESS[$i]} -gt $THR_MESS ]; then
OLD_MESS[$i]=${MESS[$i]}
MESS[$i]="$red${MESS[$i]}"
elif [[ ${MESS[$i]} -gt ${OLD_MESS[$i]} ]]; then
OLD_MESS[$i]=${MESS[$i]}
MESS[$i]="$bold${MESS[$i]}"
fi
if [[ ${CONS[$i]} -lt ${OLD_CONS[$i]} || ${CONS[$i]} -eq 0 ]]; then
OLD_CONS[$i]=${CONS[$i]}
CONS[$i]="$red${CONS[$i]}"
fi
if [ ${ENQ[$i]} -gt ${OLD_ENQ[$i]} ]; then
OLD_ENQ[$i]=${ENQ[$i]}
#ENQ[$i]="$bold${ENQ[$i]}"
fi
if [[ ${DEQ[$i]} -eq ${OLD_DEQ[$i]} && ${ENQ[$i]} -gt ${OLD_ENQ[$i]} ]]; then
OLD_DEQ[$i]=${DEQ[$i]}
DEQ[$i]="$red${DEQ[$i]}"
elif [[ ${DEQ[$i]} -gt ${OLD_DEQ[$i]} ]]; then
OLD_DEQ[$i]=${DEQ[$i]}
DEQ[$i]="$green${DEQ[$i]}"
fi
fi
i=$(($i+1))
done
echo "${yellow}QUEUES${normal}" > $Q_TEMPFILE
echo "${bold}Queue Messages Consumers Enqueued Dequeued${normal}" >> $Q_TEMPFILE
for grasa in $(seq 0 $i); do
echo "${QUEUE[$grasa]}$normal ${MESS[$grasa]}$normal ${CONS[$grasa]}$normal ${ENQ[$grasa]}$normal ${DEQ[$grasa]}$normal" >> $Q_TEMPFILE
done
i=0
#TOPICS
curl -s --user ${USER}:${PASSWD} ${QUEUES_URL}/topics.jsp | grep -A3 "TOPIC</a>" | grep -v CONFIGURATION_TOPIC_[0-9]* | sed -z 's/<\/td>\n/ /g' | sed 's/<\/a> <td>/ Consumers:/' | sed 's/ <td>/ Messages: /' | sed 's/ <td>/ Dequeued: /' | sed 's/--//'| sed 's/: /:/g' | sed 's/ [A-Z][a-z]*:/ /g' > $T_TEMPFILE; echo >> $T_TEMPFILE
cat $T_TEMPFILE | while read T_QUEUE[$i] T_CONS[$i] T_ENQ[$i] T_DEQ[$i]; do
if [ -z "${T_OLD_QUEUE[$i]}" ]; then
T_OLD_QUEUE[$i]=${T_QUEUE[$i]}
T_OLD_CONS[$i]=${T_CONS[$i]}
T_OLD_ENQ[$i]=${T_ENQ[$i]}
T_OLD_DEQ[$i]=${T_DEQ[$i]}
else
# if [[ ${T_CONS[$i]} -lt ${T_OLD_CONS[$i]} ]]; then #|| ${T_CONS[$i]} -eq 0 ]]; then
T_OLD_CONS[$i]=${T_CONS[$i]}
# T_CONS[$i]="$red${T_CONS[$i]}"
# fi
#if [ ${T_ENQ[$i]} -gt $T_THR_ENQ ]; then
# T_OLD_ENQ[$i]=${T_ENQ[$i]}
# #T_ENQ[$i]="$red${T_ENQ[$i]}"
# T_ENQ[$i]="$bold${T_ENQ[$i]}"
#elif [[ ${T_ENQ[$i]} -gt ${T_OLD_ENQ[$i]} ]]; then
if [[ ${T_ENQ[$i]} -gt ${T_OLD_ENQ[$i]} ]]; then
T_OLD_ENQ[$i]=${T_ENQ[$i]}
T_ENQ[$i]="$bold${T_ENQ[$i]}"
fi
if [[ ${T_DEQ[$i]} -eq ${T_OLD_DEQ[$i]} ]]; then
T_OLD_DEQ[$i]=${T_DEQ[$i]}
#T_DEQ[$i]="$red${T_DEQ[$i]}"
elif [[ ${T_DEQ[$i]} -gt ${T_OLD_DEQ[$i]} ]]; then
T_OLD_DEQ[$i]=${T_DEQ[$i]}
T_DEQ[$i]="$green${T_DEQ[$i]}"
fi
fi
i=$(($i+1))
done
echo "${yellow}TOPICS${normal}" > $T_TEMPFILE
echo "${bold}Queue Consumers Enqueued Dequeued${normal}" >> $Q_TEMPFILE
for grasa in $(seq 0 $i); do
echo "${T_QUEUE[$grasa]}$normal ${T_CONS[$grasa]}$normal ${T_ENQ[$grasa]}$normal ${T_DEQ[$grasa]}$normal" >> $T_TEMPFILE
done
cat $Q_TEMPFILE $T_TEMPFILE | ${EXEC_DIR}/column_ansi.sh
i=0
echo "#################################$(date +%Y-%m-%d--%H:%M:%S)###############################"
sleep $INTERVAL
done