Created
November 17, 2016 21:11
-
-
Save thbkrkr/a36b3cdd2689c0eb631fac29ccf6c415 to your computer and use it in GitHub Desktop.
ee - checks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment