ee - checks
ee() {
if [[ $NO_COLOR == "" ]]; then
declare cyan="\e[36m"
declare green="\e[32m"
declare purple="\e[35m"
declare red="\e[31m"
declare reset="\e[39m"
else
declare cyan=
declare green=
declare purple=
declare red=
declare reset=
fi
__services() {
echo -n "${purple}services${reset} "
svs=$(ee_services)
up=$(grep -c "Up " <<< $svs)
total=$(wc -l <<< $svs)
[[ $up -eq $total ]] && echo -n "${green}OK${reset} " || echo -n "${red}KO${reset} "
echo "$up/$total"
}
__zk() {
echo -n " ${purple}zk${reset} "
zk=$(ee_zk | egrep "(leader|follower)" | wc -l)
nodes=$(docker-machine ls -q | grep ^n | wc -l)
[[ $zk -eq $nodes ]] && echo -n "${green}OK${reset} " || echo -n "${red}KO${reset} "
echo "$zk/$nodes"
}
__qaastor() {
echo -n " ${purple}qaastor${reset} "
lag=$(ee_qaastor | sed "s|lag=||")
[[ $lag -lt 1000 ]] && echo -n "${green}OK${reset} " || echo -n "${red}KO${reset} "
echo "$lag<1000"
}
__health() {
echo -n " ${purple}health${reset} "
errors=$(ee_health_check | grep error | wc -l)
[[ $errors -eq 0 ]] && echo -n "${green}OK${reset} " || echo -n "${red}KO${reset} "
echo "errors=$errors"
}
(
# (__health > .ee_health) &
(__services > .ee_services) &
(__zk > .ee_zk) &
(__qaastor > .ee_qaastor) &
wait
)
cat .ee_services
# cat .ee_health
cat .ee_zk
cat .ee_qaastor
__health
}
ee_json() {
while read l; do
name=$(cut -d '|' -f1 <<< $l )
statuz=$(cut -d '|' -f2 <<< $l )
msg=$(cut -d '|' -f3 <<< $l )
echo '{"name":"'$name'","status":"'$statuz'","msg":"'$msg'"}'
done < <(NO_COLOR=yes ee | sed -e "s/[ ]* /|/g" -e "s/^|//")
}
ee_zk() {
ansible node -a 'sh -c "echo srvr | nc localhost 2182"' \
| egrep -v "(version|Zxid|Outstanding|Sent|Received|count|Latency)"
}
ee_services() {
lsc | jq -c 'to_entries[] | {host:.key, service:.value[] | {n:.Names[0],state:.State,status:.Status} }'
}
ee_qaastor() {
get() {
docker-machine ssh $DOCKER_MACHINE_NAME sudo tail -1000 /var/log/syslog \
| grep qaastor | egrep "(produced|consumed)" | tail -2 \
| sed -r "s|.*Messages ([a-z]*).*count=([0-9]*).*rate1m=([0-9])*\..*|\1:\2:\3|"
}
rates="$(get)"
consumed=$(grep consumed <<< $rates | cut -d ":" -f2)
produced=$(grep produced <<< $rates | cut -d ":" -f2)
echo -n "lag="
expr $produced - $consumed
}
ee_health_check() {
ansible node -a health
}