Browse Source

Merge pull request #8604 from gyuho/debug-client

etcdctl,clientv3: add debugging logs
Gyu-Ho Lee 8 years ago
parent
commit
2240b6a592
3 changed files with 16 additions and 2 deletions
  1. 6 0
      clientv3/balancer.go
  2. 3 0
      clientv3/health_balancer.go
  3. 7 2
      etcdctl/ctlv3/command/global.go

+ 6 - 0
clientv3/balancer.go

@@ -309,6 +309,9 @@ func (b *simpleBalancer) up(addr grpc.Address) (func(error), bool) {
 	close(b.upc)
 	b.downc = make(chan struct{})
 	b.pinAddr = addr.Addr
+	if logger.V(4) {
+		logger.Infof("clientv3: balancer pins endpoint to %s", addr.Addr)
+	}
 	// notify client that a connection is up
 	b.readyOnce.Do(func() { close(b.readyc) })
 	return func(err error) {
@@ -317,6 +320,9 @@ func (b *simpleBalancer) up(addr grpc.Address) (func(error), bool) {
 		close(b.downc)
 		b.pinAddr = ""
 		b.mu.Unlock()
+		if logger.V(4) {
+			logger.Infof("clientv3: unpin %s (%v)", addr.Addr, err)
+		}
 	}, true
 }
 

+ 3 - 0
clientv3/health_balancer.go

@@ -186,6 +186,9 @@ func (hb *healthBalancer) mayPin(addr grpc.Address) bool {
 	hb.mu.Lock()
 	hb.unhealthy[addr.Addr] = time.Now()
 	hb.mu.Unlock()
+	if logger.V(4) {
+		logger.Infof("clientv3: %s becomes unhealthy", addr.Addr)
+	}
 	return false
 }
 

+ 7 - 2
etcdctl/ctlv3/command/global.go

@@ -30,6 +30,7 @@ import (
 	"github.com/coreos/etcd/pkg/srv"
 	"github.com/coreos/etcd/pkg/transport"
 	"github.com/spf13/cobra"
+	"github.com/spf13/pflag"
 	"google.golang.org/grpc/grpclog"
 )
 
@@ -90,14 +91,18 @@ func initDisplayFromCmd(cmd *cobra.Command) {
 }
 
 func mustClientFromCmd(cmd *cobra.Command) *clientv3.Client {
-	flags.SetPflagsFromEnv("ETCDCTL", cmd.InheritedFlags())
+	fs := cmd.InheritedFlags()
+	flags.SetPflagsFromEnv("ETCDCTL", fs)
 
 	debug, derr := cmd.Flags().GetBool("debug")
 	if derr != nil {
 		ExitWithError(ExitError, derr)
 	}
 	if debug {
-		clientv3.SetLogger(grpclog.NewLoggerV2(os.Stderr, os.Stderr, os.Stderr))
+		clientv3.SetLogger(grpclog.NewLoggerV2WithVerbosity(os.Stderr, os.Stderr, os.Stderr, 4))
+		fs.VisitAll(func(f *pflag.Flag) {
+			fmt.Fprintf(os.Stderr, "%s=%v\n", flags.FlagToEnv("ETCDCTL", f.Name), f.Value)
+		})
 	}
 
 	endpoints, err := endpointsFromCmd(cmd)