etcdctl: refactor the way to check cluster health
etcdctl: refactor the way to check cluster health

This method uses raft status exposed at /debug/varz to determine the
health of the cluster. It uses whether commit index increases to
determine the cluster health, and uses whether match index increases to
determine the member health.

This could fix the bug #2711 that fails to detect follower is unhealthy
because it doesn't rely on whether message in long-polling connection is sent.

This health check is stricter than the old one, and reflects the
situation that whether followers are healthy in the view of the leader. One
example is that if the follower is receiving the snapshot, it will turns
out to be unhealthy because it doesn't move forward.

`etcdctl cluster-health` will reflect the healthy view in the raft level,
while connectivity checks reflects the healthy view in transport level.

vimalk78/etcd,yudai/etcd,CrazyJvm/etcd,swingbach/etcd,ktateish/etcd,rchicoli/etcd,asim/etcd,fgbreel/etcd,glevand/coreos--etcd,jchauncey/etcd,armstrongli/etcd,yudai/etcd,plasticbox/etcd,rnaveiras/etcd,YuleiXiao/etcd,jeremyeder/etcd,wantonsolutions/dinv-etcd,wowsoso/etcd,steveeJ/etcd,dannysauer/etcd,li-ang/etcd,mitake/etcd,mickep76/etcd,luxas/etcd,pauldallen/etcd,devfreesg/etcd,a-robinson/etcd,mqliang/etcd,freeloop1114/etcd,handsomesun/etcd,giantswarm/etcd,rchicoli/etcd,es-chow/etcd,dalanlan/etcd,nekto0n/etcd,yichengq/etcd,heyitsanthony/etcd,xychu/etcd,msanterre/etcd,mkumatag/etcd,Timer/etcd,sayden/etcd,shawnps/etcd,etcd-io/etcd,siddontang/etcd,glycerine/etcd,TheHippo/etcd,sinsharat/etcd,njharman/etcd,hongchaodeng/etcd,HideoYamauchi/etcd,mkumatag/etcd,whuwxl/etcd,StorReduce/etcd,jlamillan/etcd,mitake/etcd,tamird/etcd,gyuho/etcd,improbable-io/etcd,insionng/etcd,onlyjob/etcd,CrazyJvm/etcd,Winslett/etcd,cchamplin/etcd,xychu/etcd,armstrongli/etcd,cognusion/etcd,junxu/etcd,iamqizhao/etcd,rnaveiras/etcd,kkaneda/etcd,imzhulei/etcd,steveeJ/etcd,heyitsanthony/etcd,wfxiang08/etcd,westhood/etcd,combk8s/etcd,joshix/etcd,betawaffle/etcd,sofuture/etcd,cchamplin/etcd,tguangch/etcd,elimisteve/etcd,xiang90/etcd,mkumatag/etcd,visheshnp/etcd,YuleiXiao/etcd,li-ang/etcd,onlyjob/etcd,zaphod-concur/etcd,etcd-io/etcd,wowsoso/etcd,SivagnanamCiena/etcd,sebschrader/etcd,insequent/etcd,svdata/etcd,kingland/etcd,insionng/etcd,lorneli/etcd,purpleidea/etcd,Yhgenomics/etcd,gityf/etcd,pauldallen/etcd,fgbreel/etcd,ajityagaty/etcd,giantswarm/etcd,lzbgt/etcd,OyTao/etcd_learning,fasaxc/etcd,whuwxl/etcd,honeyqa/etcd,ajityagaty/etcd,StorReduce/etcd,cockroachdb/etcd,youxidev/etcd,a-robinson/etcd,yyljlyy/etcd,xiang90/etcd,yichengq/etcd,snailwalker/etcd,honeyqa/etcd,beni55/etcd,raoofm/etcd,dnaeon/etcd,wfxiang08/etcd,cockroachdb/etcd,fanminshi/etcd,shakefu/etcd,linuxcer/etcd,shawnps/etcd,westhood/etcd,hroyrh/etcd,nkhare/etcd,insequent/etcd,iamqizhao/etcd,es-chow/etcd,Eagle-X/etcd,hroyrh/etcd,cognusion/etcd,chipironcin/etcd,polvi/etcd,jonboulle/etcd,akauppi/etcd,rnaveiras/etcd,sebrandon1/etcd,raoofm/etcd,SivagnanamCiena/etcd,siddontang/etcd,fasaxc/etcd,gouyang/etcd,fasaxc/etcd,achanda/etcd,hongbinz/etcd,shakefu/etcd,mickep76/etcd,Yhgenomics/etcd,yyljlyy/etcd,jeremyeder/etcd,jefby/etcd,chipironcin/etcd,axingblog/etcd,ravigadde/etcd,oscarrr110/etcd,arthurcolle/etcd,visheshnp/etcd,mqliang/etcd,msanterre/etcd,jchauncey/etcd,improbable-io/etcd,xdlinear/etcd,nkhare/etcd,wantonsolutions/dinv-etcd,OyTao/etcd_learning,sofuture/etcd,gityf/etcd,lzbgt/etcd,purpleidea/etcd,zaphod-concur/etcd,mike-lerch/etcd,tangkun75/etcd,TheHippo/etcd,sayden/etcd,endocode/etcd,ajityagaty/etcd,buaazp/etcd,HideoYamauchi/etcd,svdata/etcd,chenbaihu/etcd,bluebreezecf/etcd,qqsun8819/etcd,qqsun8819/etcd,joshix/etcd,axingblog/etcd,spacejam/etcd,vimalk78/etcd,swingbach/etcd,njucslqq/etcd,openedbox/etcd,bdarnell/etcd,tamird/etcd,junxu/etcd,beni55/etcd,gyuho/etcd,gouyang/etcd,linuxcer/etcd,hongbinz/etcd,ravigadde/etcd,plasticbox/etcd,snailwalker/etcd,freeloop1114/etcd,lumjjb/etcd,arthurcolle/etcd,Eagle-X/etcd,delkyd/etcd,wantonsolutions/dinv-etcd,hongchaodeng/etcd,bdarnell/etcd,devfreesg/etcd,etcd-io/etcd,glevand/coreos--etcd,buaazp/etcd,jefby/etcd,sebschrader/etcd,xdlinear/etcd,elimisteve/etcd,glycerine/etcd,coreos/etcd,tangkun75/etcd,tguangch/etcd,ktateish/etcd,lorneli/etcd,gae123/etcd,Timer/etcd,youxidev/etcd,achanda/etcd,njharman/etcd,akauppi/etcd,spacejam/etcd,endocode/etcd,bluebreezecf/etcd,sinsharat/etcd,dnaeon/etcd,mike-lerch/etcd,offscale/etcd,jonboulle/etcd,mqliang/etcd,fanminshi/etcd,jlamillan/etcd,asim/etcd,combk8s/etcd,imzhulei/etcd,dalanlan/etcd,dannysauer/etcd,nekto0n/etcd,njucslqq/etcd,coreos/etcd,lumjjb/etcd,kingland/etcd,openedbox/etcd,Winslett/etcd,polvi/etcd,delkyd/etcd,kkaneda/etcd,luxas/etcd,chenbaihu/etcd,gae123/etcd,betawaffle/etcd,handsomesun/etcd,oscarrr110/etcd,tempbottle/etcd,sebrandon1/etcd,offscale/etcd,tempbottle/etcd