From 3044dc7e82cfb975576e908b29204a84cf4847cd Mon Sep 17 00:00:00 2001
From: Joe Zou <yixian.zou@gmail.com>
Date: Thu, 12 Mar 2020 00:46:26 +0800
Subject: [PATCH] mod grpc tracing

---
 protocol/grpc/client.go | 5 ++++-
 protocol/grpc/server.go | 4 +++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/protocol/grpc/client.go b/protocol/grpc/client.go
index 038bf9311..0f7651ed2 100644
--- a/protocol/grpc/client.go
+++ b/protocol/grpc/client.go
@@ -53,7 +53,10 @@ func NewClient(url common.URL) *Client {
 	if opentracing.IsGlobalTracerRegistered() {
 		tracer = opentracing.GlobalTracer()
 		conn, err = grpc.Dial(url.Location, grpc.WithInsecure(), grpc.WithBlock(),
-			grpc.WithUnaryInterceptor(otgrpc.OpenTracingClientInterceptor(tracer)))
+			grpc.WithUnaryInterceptor(
+				otgrpc.OpenTracingClientInterceptor(tracer, otgrpc.LogPayloads())),
+			grpc.WithStreamInterceptor(
+				otgrpc.OpenTracingStreamClientInterceptor(tracer, otgrpc.LogPayloads())))
 		if err != nil {
 			panic(err)
 		}
diff --git a/protocol/grpc/server.go b/protocol/grpc/server.go
index 83dab37ed..5574388f7 100644
--- a/protocol/grpc/server.go
+++ b/protocol/grpc/server.go
@@ -73,7 +73,9 @@ func (s *Server) Start(url common.URL) {
 	// if global trace instance was set, then server tracer instance can be get, and span context can also be get
 	if opentracing.IsGlobalTracerRegistered() {
 		tracer := opentracing.GlobalTracer()
-		server = grpc.NewServer(grpc.UnaryInterceptor(otgrpc.OpenTracingServerInterceptor(tracer)))
+		server = grpc.NewServer(
+			grpc.UnaryInterceptor(otgrpc.OpenTracingServerInterceptor(tracer)),
+			grpc.StreamInterceptor(otgrpc.OpenTracingStreamServerInterceptor(tracer)))
 	} else {
 		server = grpc.NewServer()
 	}
-- 
GitLab