From 4f71941172731d39a03795635fc14680a55d5db6 Mon Sep 17 00:00:00 2001 From: Gyuho Lee Date: Thu, 21 Dec 2017 14:30:51 -0800 Subject: [PATCH] grpc-proxy: add "--debug" flag to "etcd grpc-proxy start" command Signed-off-by: Gyuho Lee --- etcdmain/grpc_proxy.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/etcdmain/grpc_proxy.go b/etcdmain/grpc_proxy.go index 41f71c70e..23cd767c2 100644 --- a/etcdmain/grpc_proxy.go +++ b/etcdmain/grpc_proxy.go @@ -17,6 +17,7 @@ package etcdmain import ( "context" "fmt" + "io/ioutil" "math" "net" "net/http" @@ -37,10 +38,12 @@ import ( "github.com/coreos/etcd/pkg/transport" "github.com/coreos/etcd/proxy/grpcproxy" + "github.com/coreos/pkg/capnslog" grpc_prometheus "github.com/grpc-ecosystem/go-grpc-prometheus" "github.com/soheilhy/cmux" "github.com/spf13/cobra" "google.golang.org/grpc" + "google.golang.org/grpc/grpclog" ) var ( @@ -75,6 +78,8 @@ var ( grpcProxyEnablePprof bool grpcProxyEnableOrdering bool + + grpcProxyDebug bool ) func init() { @@ -127,12 +132,26 @@ func newGRPCProxyStartCommand() *cobra.Command { // experimental flags cmd.Flags().BoolVar(&grpcProxyEnableOrdering, "experimental-serializable-ordering", false, "Ensure serializable reads have monotonically increasing store revisions across endpoints.") cmd.Flags().StringVar(&grpcProxyLeasing, "experimental-leasing-prefix", "", "leasing metadata prefix for disconnected linearized reads.") + + cmd.Flags().BoolVar(&grpcProxyDebug, "debug", false, "Enable debug-level logging for grpc-proxy.") + return &cmd } func startGRPCProxy(cmd *cobra.Command, args []string) { checkArgs() + capnslog.SetGlobalLogLevel(capnslog.INFO) + if grpcProxyDebug { + capnslog.SetGlobalLogLevel(capnslog.DEBUG) + grpc.EnableTracing = true + // enable info, warning, error + grpclog.SetLoggerV2(grpclog.NewLoggerV2(os.Stderr, os.Stderr, os.Stderr)) + } else { + // only discard info + grpclog.SetLoggerV2(grpclog.NewLoggerV2(ioutil.Discard, os.Stderr, os.Stderr)) + } + tlsinfo := newTLS(grpcProxyListenCA, grpcProxyListenCert, grpcProxyListenKey) if tlsinfo == nil && grpcProxyListenAutoTLS { host := []string{"https://" + grpcProxyListenAddr}