You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2021/11/18 14:57:40 UTC

[dubbo-go-samples] branch master updated: ftr: tracing (#299)

This is an automated email from the ASF dual-hosted git repository.

alexstocks pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo-go-samples.git


The following commit(s) were added to refs/heads/master by this push:
     new e1b468e  ftr: tracing (#299)
e1b468e is described below

commit e1b468e23a502f865e7ee6d67d697666df43b6fd
Author: Laurence <45...@users.noreply.github.com>
AuthorDate: Thu Nov 18 22:57:35 2021 +0800

    ftr: tracing (#299)
    
    * ftr: tracing
    
    * typo
    
    * fix: fmt
    
    * uncomment
---
 ...nt.run.xml => tracing-triple-go-client.run.xml} |  6 +-
 ...er.run.xml => tracing-triple-go-server.run.xml} |  6 +-
 .run/tracing/dubbo/tracing-dubbo-go-client.run.xml |  2 +-
 .run/tracing/dubbo/tracing-dubbo-go-server.run.xml |  2 +-
 .run/tracing/grpc/tracing-grpc-go-client.run.xml   |  2 +-
 .run/tracing/grpc/tracing-grpc-go-server.run.xml   |  2 +-
 .../jsonrpc/tracing-jsonrpc-go-client.run.xml      |  2 +-
 .../jsonrpc/tracing-jsonrpc-go-server.run.xml      |  2 +-
 api/generate.sh                                    |  2 +-
 api/samples_api_triple.pb.go                       |  5 +-
 go.mod                                             |  9 +-
 go.sum                                             | 41 ++++++---
 tracing/README.md                                  | 19 -----
 tracing/README_zh.md                               | 19 -----
 tracing/triple/go-client/cmd/client.go             | 99 ++++++++++++++++++++++
 tracing/triple/go-client/conf/dubbogo.yml          | 15 ++++
 tracing/triple/go-server/cmd/server.go             | 88 +++++++++++++++++++
 tracing/triple/go-server/conf/dubbogo.yml          | 18 ++++
 18 files changed, 270 insertions(+), 69 deletions(-)

diff --git a/.run/tracing/grpc/tracing-grpc-go-client.run.xml b/.run/tracing-triple-go-client.run.xml
similarity index 57%
copy from .run/tracing/grpc/tracing-grpc-go-client.run.xml
copy to .run/tracing-triple-go-client.run.xml
index b405011..8e18e7f 100644
--- a/.run/tracing/grpc/tracing-grpc-go-client.run.xml
+++ b/.run/tracing-triple-go-client.run.xml
@@ -1,12 +1,12 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="tracing-grpc-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="tracing" singleton="false">
+  <configuration default="false" name="tracing-triple-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="tracing">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
-      <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/tracing/grpc/go-client/conf/dubbogo.yml" />
+      <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/tracing/triple/go-client/conf/dubbogo.yml" />
     </envs>
     <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/tracing/grpc/go-client/cmd" />
+    <package value="github.com/apache/dubbo-go-samples/tracing/triple/go-client/cmd" />
     <directory value="$PROJECT_DIR$" />
     <filePath value="$PROJECT_DIR$/tracing/grpc/go-client/cmd/client.go" />
     <method v="2" />
diff --git a/.run/tracing/grpc/tracing-grpc-go-server.run.xml b/.run/tracing-triple-go-server.run.xml
similarity index 57%
copy from .run/tracing/grpc/tracing-grpc-go-server.run.xml
copy to .run/tracing-triple-go-server.run.xml
index 68eca1e..a22eac3 100644
--- a/.run/tracing/grpc/tracing-grpc-go-server.run.xml
+++ b/.run/tracing-triple-go-server.run.xml
@@ -1,12 +1,12 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="tracing-grpc-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="tracing" singleton="false">
+  <configuration default="false" name="tracing-triple-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="tracing">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
-      <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/tracing/grpc/go-server/conf/dubbogo.yml" />
+      <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/tracing/triple/go-server/conf/dubbogo.yml" />
     </envs>
     <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/tracing/grpc/go-server/cmd" />
+    <package value="github.com/apache/dubbo-go-samples/tracing/triple/go-server/cmd" />
     <directory value="$PROJECT_DIR$" />
     <filePath value="$PROJECT_DIR$/tracing/grpc/go-server/cmd/server.go" />
     <method v="2" />
diff --git a/.run/tracing/dubbo/tracing-dubbo-go-client.run.xml b/.run/tracing/dubbo/tracing-dubbo-go-client.run.xml
index 07d680f..b21f298 100644
--- a/.run/tracing/dubbo/tracing-dubbo-go-client.run.xml
+++ b/.run/tracing/dubbo/tracing-dubbo-go-client.run.xml
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="tracing-dubbo-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="tracing" singleton="false">
+  <configuration default="false" name="tracing-dubbo-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="tracing" singleton="true">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
diff --git a/.run/tracing/dubbo/tracing-dubbo-go-server.run.xml b/.run/tracing/dubbo/tracing-dubbo-go-server.run.xml
index c0a3140..bf81502 100644
--- a/.run/tracing/dubbo/tracing-dubbo-go-server.run.xml
+++ b/.run/tracing/dubbo/tracing-dubbo-go-server.run.xml
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="tracing-dubbo-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="tracing" singleton="false">
+  <configuration default="false" name="tracing-dubbo-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="tracing" singleton="true">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
diff --git a/.run/tracing/grpc/tracing-grpc-go-client.run.xml b/.run/tracing/grpc/tracing-grpc-go-client.run.xml
index b405011..0b81528 100644
--- a/.run/tracing/grpc/tracing-grpc-go-client.run.xml
+++ b/.run/tracing/grpc/tracing-grpc-go-client.run.xml
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="tracing-grpc-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="tracing" singleton="false">
+  <configuration default="false" name="tracing-grpc-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="tracing" singleton="true">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
diff --git a/.run/tracing/grpc/tracing-grpc-go-server.run.xml b/.run/tracing/grpc/tracing-grpc-go-server.run.xml
index 68eca1e..16b509a 100644
--- a/.run/tracing/grpc/tracing-grpc-go-server.run.xml
+++ b/.run/tracing/grpc/tracing-grpc-go-server.run.xml
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="tracing-grpc-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="tracing" singleton="false">
+  <configuration default="false" name="tracing-grpc-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="tracing" singleton="true">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
diff --git a/.run/tracing/jsonrpc/tracing-jsonrpc-go-client.run.xml b/.run/tracing/jsonrpc/tracing-jsonrpc-go-client.run.xml
index 7f108dd..a3d2cc1 100644
--- a/.run/tracing/jsonrpc/tracing-jsonrpc-go-client.run.xml
+++ b/.run/tracing/jsonrpc/tracing-jsonrpc-go-client.run.xml
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="tracing-jsonrpc-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="tracing" singleton="false">
+  <configuration default="false" name="tracing-jsonrpc-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="tracing" singleton="true">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
diff --git a/.run/tracing/jsonrpc/tracing-jsonrpc-go-server.run.xml b/.run/tracing/jsonrpc/tracing-jsonrpc-go-server.run.xml
index 7301da1..0384f5d 100644
--- a/.run/tracing/jsonrpc/tracing-jsonrpc-go-server.run.xml
+++ b/.run/tracing/jsonrpc/tracing-jsonrpc-go-server.run.xml
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="tracing-jsonrpc-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="tracing" singleton="false">
+  <configuration default="false" name="tracing-jsonrpc-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="tracing" singleton="true">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
diff --git a/api/generate.sh b/api/generate.sh
index cda223b..9eb0447 100755
--- a/api/generate.sh
+++ b/api/generate.sh
@@ -1,4 +1,4 @@
 export GO111MODULE="on"
 export GOPROXY="http://goproxy.io"
-go install github.com/dubbogo/tools/cmd/protoc-gen-go-triple@v1.0.2
+go install github.com/dubbogo/tools/cmd/protoc-gen-go-triple@v1.0.3
 protoc --go_out=. --go-triple_out=. samples_api.proto
\ No newline at end of file
diff --git a/api/samples_api_triple.pb.go b/api/samples_api_triple.pb.go
index afa35d0..61f7802 100644
--- a/api/samples_api_triple.pb.go
+++ b/api/samples_api_triple.pb.go
@@ -178,10 +178,11 @@ func _Greeter_SayHello_Handler(srv interface{}, ctx context.Context, dec func(in
 	}
 	info := &grpc_go.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/api.Greeter/SayHello",
+		FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(GreeterServer).SayHello(ctx, req.(*HelloRequest))
+		result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
+		return result, result.Error()
 	}
 	return interceptor(ctx, in, info, handler)
 }
diff --git a/go.mod b/go.mod
index f66bacf..b61a8af 100644
--- a/go.mod
+++ b/go.mod
@@ -1,11 +1,11 @@
 module github.com/apache/dubbo-go-samples
 
 require (
-	dubbo.apache.org/dubbo-go/v3 v3.0.0-rc4-1
+	dubbo.apache.org/dubbo-go/v3 v3.0.0-rc4-1.0.20211118132945-ab1116937abb
 	github.com/apache/dubbo-go-hessian2 v1.9.4-0.20210917102639-74a8ece5f3cb
 	github.com/dubbogo/gost v1.11.19
-	github.com/dubbogo/grpc-go v1.42.5-triple
-	github.com/dubbogo/triple v1.1.3
+	github.com/dubbogo/grpc-go v1.42.6-triple
+	github.com/dubbogo/triple v1.1.5
 	github.com/golang/protobuf v1.5.2
 	github.com/opentracing/opentracing-go v1.2.0
 	github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5
@@ -13,8 +13,7 @@ require (
 	github.com/pkg/errors v0.9.1
 	github.com/stretchr/objx v0.2.0 // indirect
 	github.com/stretchr/testify v1.7.0
-	github.com/uber/jaeger-client-go v2.22.1+incompatible
-	github.com/uber/jaeger-lib v2.2.0+incompatible // indirect
+	github.com/uber/jaeger-client-go v2.29.1+incompatible
 	google.golang.org/grpc v1.42.0
 	google.golang.org/protobuf v1.27.1
 )
diff --git a/go.sum b/go.sum
index 6dfa2eb..53a7008 100644
--- a/go.sum
+++ b/go.sum
@@ -34,8 +34,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9
 contrib.go.opencensus.io/exporter/prometheus v0.4.0 h1:0QfIkj9z/iVZgK31D9H9ohjjIDApI2GOPScCKwxedbs=
 contrib.go.opencensus.io/exporter/prometheus v0.4.0/go.mod h1:o7cosnyfuPVK0tB8q0QmaQNhGnptITnPQB+z1+qeFB0=
 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
-dubbo.apache.org/dubbo-go/v3 v3.0.0-rc4-1 h1:vfe836CEwoG5riqdOfAZnbK8jQRKJ9Rr97AC3ID2Rnk=
-dubbo.apache.org/dubbo-go/v3 v3.0.0-rc4-1/go.mod h1:nk5n161RX1hycUaLsLgZi7Gar41J+4srY4ysp0yW2PI=
+dubbo.apache.org/dubbo-go/v3 v3.0.0-rc4-1.0.20211118132945-ab1116937abb h1:6kxZ3FQS+JZrvbIo7FfpD/Px3OltLZINHjciSA99ehw=
+dubbo.apache.org/dubbo-go/v3 v3.0.0-rc4-1.0.20211118132945-ab1116937abb/go.mod h1:MrpMgMBqbluDhLaG+1LR+ERAi5Xe4MsqWYBmEh/MZLw=
 github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI=
 github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0=
 github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA=
@@ -47,6 +47,8 @@ github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
 github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
+github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM=
+github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo=
 github.com/Julusian/godocdown v0.0.0-20170816220326-6d19f8ff2df8/go.mod h1:INZr5t32rG59/5xeltqoCJoNY7e5x/3xoY9WSWVWg74=
 github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
 github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
@@ -64,6 +66,7 @@ github.com/Workiva/go-datastructures v1.0.52 h1:PLSK6pwn8mYdaoaCZEMsXBpBotr4HHn9
 github.com/Workiva/go-datastructures v1.0.52/go.mod h1:Z+F2Rca0qCsVYDS8z7bAGm8f3UkzuWYS/oBZz5a7VVA=
 github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5 h1:rFw4nCn9iMW+Vajsk51NtYIcwSTkXr+JGrMd36kTDJw=
 github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c=
+github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
 github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
 github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
 github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
@@ -145,7 +148,6 @@ github.com/cockroachdb/errors v1.2.4 h1:Lap807SXTH5tri2TivECb/4abUkMZC9zRoLarvcK
 github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA=
 github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f h1:o/kfcElHqOiXqcou5a3rIlMc7oJbMQkeLk0VQJ7zgqY=
 github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI=
-github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd h1:qMd81Ts1T2OTKmB4acZcyKaMtRnY5Y44NuXGX2GFJ1w=
 github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
 github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
 github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
@@ -181,13 +183,13 @@ github.com/dubbogo/gost v1.11.12/go.mod h1:vIcP9rqz2KsXHPjsAwIUtfJIJjppQLQDcYaZT
 github.com/dubbogo/gost v1.11.18/go.mod h1:vIcP9rqz2KsXHPjsAwIUtfJIJjppQLQDcYaZTy/61jI=
 github.com/dubbogo/gost v1.11.19 h1:R1rZ3TNJKV9W5XHLMv+GDO2Wy6UDnwGQtVWbsWYvo0A=
 github.com/dubbogo/gost v1.11.19/go.mod h1:vIcP9rqz2KsXHPjsAwIUtfJIJjppQLQDcYaZTy/61jI=
-github.com/dubbogo/grpc-go v1.42.5-triple h1:Ed5z/ikkpdZHBMA4mTEthQFTQeKlHtkdAsQrZjTbFk8=
-github.com/dubbogo/grpc-go v1.42.5-triple/go.mod h1:F1T9hnUvYGW4JLK1QNriavpOkhusU677ovPzLkk6zHM=
+github.com/dubbogo/grpc-go v1.42.6-triple h1:NDTATpffyaAkwC+GBk3SDB45eeMTdvZhJKkkX4nIKHs=
+github.com/dubbogo/grpc-go v1.42.6-triple/go.mod h1:F1T9hnUvYGW4JLK1QNriavpOkhusU677ovPzLkk6zHM=
 github.com/dubbogo/jsonparser v1.0.1/go.mod h1:tYAtpctvSP/tWw4MeelsowSPgXQRVHHWbqL6ynps8jU=
 github.com/dubbogo/net v0.0.4/go.mod h1:1CGOnM7X3he+qgGNqjeADuE5vKZQx/eMSeUkpU3ujIc=
 github.com/dubbogo/triple v1.0.9/go.mod h1:1t9me4j4CTvNDcsMZy6/OGarbRyAUSY0tFXGXHCp7Iw=
-github.com/dubbogo/triple v1.1.3 h1:XKSh42lE2HLud++g4Fif7XY2hSMEsohFpegZPvsNXVQ=
-github.com/dubbogo/triple v1.1.3/go.mod h1:suMeAfZliq0p/lWIytgEdiuKcRlmeJC9pYeNHVE7FWU=
+github.com/dubbogo/triple v1.1.5 h1:obLSzyJWawOBrah9PeFqLDRom5jVQGVuzs4NO4YzuS8=
+github.com/dubbogo/triple v1.1.5/go.mod h1:5lGslNo9Tq8KR8+tSSSJkhypNaREYZCKCk0Owx40Cx4=
 github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
 github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
 github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
@@ -218,6 +220,7 @@ github.com/fastly/go-utils v0.0.0-20180712184237-d95a45783239 h1:Ghm4eQYC0nEPnSJ
 github.com/fastly/go-utils v0.0.0-20180712184237-d95a45783239/go.mod h1:Gdwt2ce0yfBxPvZrHkprdPPTTS3N5rwmLE8T22KBXlw=
 github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
 github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=
+github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
 github.com/form3tech-oss/jwt-go v3.2.2+incompatible h1:TcekIExNqud5crz4xD2pavyTgWiPvpYe4Xau31I0PRk=
 github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
 github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4=
@@ -287,6 +290,7 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP
 github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
 github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
 github.com/goji/httpauth v0.0.0-20160601135302-2da839ab0f4d/go.mod h1:nnjvkQ9ptGaCkuDUx6wNykzzlUixGxvkme+H/lnzb+A=
+github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
 github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4=
 github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
@@ -481,6 +485,7 @@ github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7
 github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
 github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
 github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
+github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
 github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88 h1:uC1QfSlInpQF+M0ao65imhwqKnz3Q2z/d8PWZRMQvDM=
 github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k=
 github.com/k0kubun/pp v3.0.1+incompatible h1:3tqvf7QgUnZ5tXO6pNAZlrvHgl6DvifjDrd9g2S9Z40=
@@ -753,10 +758,10 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1
 github.com/toolkits/concurrent v0.0.0-20150624120057-a4371d70e3e3 h1:kF/7m/ZU+0D4Jj5eZ41Zm3IH/J8OElK1Qtd7tVKAwLk=
 github.com/toolkits/concurrent v0.0.0-20150624120057-a4371d70e3e3/go.mod h1:QDlpd3qS71vYtakd2hmdpqhJ9nwv6mD6A30bQ1BPBFE=
 github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
-github.com/uber/jaeger-client-go v2.22.1+incompatible h1:NHcubEkVbahf9t3p75TOCR83gdUHXjRJvjoBh1yACsM=
-github.com/uber/jaeger-client-go v2.22.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
-github.com/uber/jaeger-lib v2.2.0+incompatible h1:MxZXOiR2JuoANZ3J6DE/U0kSFv/eJ/GfSYVCjK7dyaw=
-github.com/uber/jaeger-lib v2.2.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
+github.com/uber/jaeger-client-go v2.29.1+incompatible h1:R9ec3zO3sGpzs0abd43Y+fBZRJ9uiH6lXyR/+u6brW4=
+github.com/uber/jaeger-client-go v2.29.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
+github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg=
+github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
 github.com/ugorji/go v1.2.6 h1:tGiWC9HENWE2tqYycIqFTNorMmFRVhNwCpDOpWqnk8E=
 github.com/ugorji/go v1.2.6/go.mod h1:anCg0y61KIhDlPZmnH+so+RQbysYVyDko0IMgJv0Nn0=
 github.com/ugorji/go/codec v1.2.6 h1:7kbGefxLoDBuYXOms4yD7223OpNMMPNPZxXk5TvFcyQ=
@@ -840,7 +845,10 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh
 golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 h1:/UOmuWzQfxxo9UtlXMwuQU8CMgg1eZXqTRwkSQJWKOI=
 golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
+golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
 golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
@@ -850,7 +858,9 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0
 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
 golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
+golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5 h1:FR+oGxGfbQu1d+jglI3rCkjAjUnhRSZcUxr+DqlDLNo=
 golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw=
+golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
 golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
 golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
 golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -1029,11 +1039,13 @@ golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxb
 golang.org/x/time v0.0.0-20201208040808-7e3f01d25324 h1:Hir2P/De0WpUhtrKGGjvSb2YxUgyZ7EFOSLIcSSpiwE=
 golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
 golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
@@ -1089,6 +1101,12 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8T
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
 golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
+gonum.org/v1/gonum v0.8.2 h1:CCXrcPKiGGotvnN6jfUsKk4rRqm7q09/YbKb5xCEvtM=
+gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0=
+gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0 h1:OE9mWmgKkjJyEmDAAtGMPjXu+YNeGvK9VTSHY6+Qihc=
+gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
+gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
 google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk=
 google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
 google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
@@ -1256,6 +1274,7 @@ k8s.io/kube-openapi v0.0.0-20190816220812-743ec37842bf/go.mod h1:1TqjTSzOxsLGIKf
 k8s.io/utils v0.0.0-20190801114015-581e00157fb1 h1:+ySTxfHnfzZb9ys375PXNlLhkJPLKgHajBU0N62BDvE=
 k8s.io/utils v0.0.0-20190801114015-581e00157fb1/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=
 rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
+rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
 rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
 rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
 sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI=
diff --git a/tracing/README.md b/tracing/README.md
deleted file mode 100644
index 5b6006c..0000000
--- a/tracing/README.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# RPC Dubbo for Dubbo-go 3.0
-
-If u wanna know how to startup the client/server and the definition of APIs, please refer to [dubbo-go 3.0 quickstart](https://dubbogo.github.io/zh-cn/docs/user/quickstart/3.0/quickstart.html)
-
-## Instructions
-1. Start `zookeeper` service in `integrate_test/dockercompose/docker-compose.yml` file
-2. Start the server side. 
-   1. Find the go-server folder, run the `main` function under the cmd package, and start the golang server
-3. Start the client side. 
-   1. Find the go-client folder, run the `main` function under the cmd package, and start the golang client
-4. Steps to test ziplink:
-   1. Start the `zipkin` service in the `docker/docker-compose.yml` file
-   2. Enable the `initZipkin()` statement of the `main` function in `go-server` and `go-client`, and commented out the `initJaeger()` statement
-   3. Use the client to call the server-side service, and open http://localhost:9411/zipkin with a browser to see the tracing data
-5. Steps to test jaeger:
-   1. Start the `jaeger` service in the `docker/docker-compose.yml` file
-   2. Enable the `initJaeger()` statement of the `main` function in `go-server` and `go-client`, and commented out the `initZipkin()` statement
-   3. Use the client to call the server-side service, and open http://localhost:16686/search with a browser to see the tracing data
-
diff --git a/tracing/README_zh.md b/tracing/README_zh.md
deleted file mode 100644
index ede24cf..0000000
--- a/tracing/README_zh.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# RPC Dubbo for Dubbo-go 3.0
-
-api 定义以及 go 客户端、服务端启动,可以参考 [dubbo-go 3.0 快速开始](https://dubbogo.github.io/zh-cn/docs/user/quickstart/3.0/quickstart.html)
-
-## 使用方法
-1. 启动 `docker/docker-compose.yml` 文件里的 `zookeeper` 服务
-2. 启动 server 端:
-   1. 找到 go-server 文件夹,运行 cmd 包下的 `main` 函数,启动 golang server
-3. 启动 client 端:
-   1. 找到 go-client 文件夹,运行 cmd 包下的 `main` 函数,启动 golang client
-4. 测试 ziplink步骤:
-   1. 启动 `docker/docker-compose.yml` 文件里的 `zipkin` 服务
-   2. 启用`go-server`和`go-client` 里的`main` 函数的 `initZipkin()`语句,并注释 `initJaeger()` 语句
-   3. 使用 client 调用 server 端服务,用浏览器打开 http://localhost:9411/zipkin 即可看到tracing数据
-5. 测试jaeger步骤:
-   1. 启动 `docker/docker-compose.yml` 文件里的 `jaeger` 服务
-   2. 启用 `go-server` 和 `go-client` 里的 `main` 函数的 `initJaeger()` 语句,并注释 `initZipkin()` 语句
-   3. 使用client调用server端服务,用浏览器打开 http://localhost:16686/search 即可看到tracing数据
-
diff --git a/tracing/triple/go-client/cmd/client.go b/tracing/triple/go-client/cmd/client.go
new file mode 100644
index 0000000..7aeaf33
--- /dev/null
+++ b/tracing/triple/go-client/cmd/client.go
@@ -0,0 +1,99 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package main
+
+import (
+	"context"
+	"time"
+)
+
+import (
+	"dubbo.apache.org/dubbo-go/v3/common/logger"
+	"dubbo.apache.org/dubbo-go/v3/config"
+	_ "dubbo.apache.org/dubbo-go/v3/imports"
+)
+
+import (
+	"github.com/apache/dubbo-go-samples/api"
+)
+
+var grpcGreeterImpl = new(api.GreeterClientImpl)
+
+// export DUBBO_GO_CONFIG_PATH= PATH_TO_SAMPLES/tracing/go-client/conf/dubbogo.yml
+func main() {
+	//initJaeger()
+	config.SetConsumerService(grpcGreeterImpl)
+	if err := config.Load(); err != nil {
+		panic(err)
+	}
+
+	logger.Info("start to test dubbo")
+	for {
+		time.Sleep(time.Second)
+
+		invoke()
+
+		invokeStream()
+	}
+}
+
+func invokeStream() {
+	ctx := context.Background()
+	req := api.HelloRequest{
+		Name: "laurence",
+	}
+
+	r, err := grpcGreeterImpl.SayHelloStream(ctx)
+	if err != nil {
+		panic(err)
+	}
+
+	for i := 0; i < 2; i++ {
+		if err := r.Send(&req); err != nil {
+			logger.Errorf("Send SayHelloStream num %d request error = %v\n", i+1, err)
+			return
+		}
+	}
+
+	rspUser := &api.User{}
+	if err := r.RecvMsg(rspUser); err != nil {
+		logger.Errorf("Receive 1 SayHelloStream response user error = %v\n", err)
+		return
+	}
+	logger.Infof("Receive 1 user = %+v\n", rspUser)
+	if err := r.Send(&req); err != nil {
+		logger.Errorf("Send SayHelloStream num %d request error = %v\n", 3, err)
+		return
+	}
+	rspUser2 := &api.User{}
+	if err := r.RecvMsg(rspUser2); err != nil {
+		logger.Errorf("Receive 2 SayHelloStream response user error = %v\n", err)
+		return
+	}
+	logger.Infof("Receive 2 user = %+v\n", rspUser2)
+}
+
+func invoke() {
+	reply, err := grpcGreeterImpl.SayHello(context.Background(), &api.HelloRequest{
+		Name: "laurence",
+	})
+	if err != nil {
+		logger.Error(err)
+	}
+	logger.Infof("client response result: %v\n", reply)
+}
diff --git a/tracing/triple/go-client/conf/dubbogo.yml b/tracing/triple/go-client/conf/dubbogo.yml
new file mode 100644
index 0000000..f9e71e2
--- /dev/null
+++ b/tracing/triple/go-client/conf/dubbogo.yml
@@ -0,0 +1,15 @@
+dubbo:
+  application:
+    name: IGreeterClient
+  registries:
+    demoZK:
+      protocol: zookeeper
+      address: 127.0.0.1:2181
+  tracing:
+    mytracingKey:
+      address: "http://tracing-analysis-dc-hz.aliyuncs.com/XXXXXX/api/traces"
+  consumer:
+    references:
+      GreeterClientImpl:
+        protocol: tri
+        interface: com.apache.dubbo.sample.basic.IGreeter # must be compatible with grpc or dubbo-java
\ No newline at end of file
diff --git a/tracing/triple/go-server/cmd/server.go b/tracing/triple/go-server/cmd/server.go
new file mode 100644
index 0000000..8b6a047
--- /dev/null
+++ b/tracing/triple/go-server/cmd/server.go
@@ -0,0 +1,88 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package main
+
+import (
+	"context"
+	"fmt"
+)
+
+import (
+	"dubbo.apache.org/dubbo-go/v3/common/logger"
+	"dubbo.apache.org/dubbo-go/v3/config"
+	_ "dubbo.apache.org/dubbo-go/v3/imports"
+)
+
+import (
+	"github.com/apache/dubbo-go-samples/api"
+)
+
+type GreeterProvider struct {
+	api.UnimplementedGreeterServer
+}
+
+func (s *GreeterProvider) SayHello(ctx context.Context, in *api.HelloRequest) (*api.User, error) {
+	logger.Infof("Dubbo3 GreeterProvider get user name = %s\n", in.Name)
+	return &api.User{Name: "Hello " + in.Name, Id: "12345", Age: 21}, nil
+}
+
+func (s *GreeterProvider) SayHelloStream(svr api.Greeter_SayHelloStreamServer) error {
+	c, err := svr.Recv()
+	if err != nil {
+		return err
+	}
+	fmt.Printf("grpc GreeterProvider recv 1 user, name = %s\n", c.Name)
+	c2, err := svr.Recv()
+	if err != nil {
+		return err
+	}
+	fmt.Printf("grpc GreeterProvider recv 2 user, name = %s\n", c2.Name)
+
+	err = svr.Send(&api.User{
+		Name: "hello " + c.Name,
+		Age:  18,
+		Id:   "123456789",
+	})
+	if err != nil {
+		return err
+	}
+	c3, err := svr.Recv()
+	if err != nil {
+		return err
+	}
+	fmt.Printf("grpc GreeterProvider recv 3 user, name = %s\n", c3.Name)
+	err = svr.Send(&api.User{
+		Name: "hello " + c2.Name,
+		Age:  19,
+		Id:   "123456789",
+	})
+	if err != nil {
+		return err
+	}
+	return nil
+}
+
+// export DUBBO_GO_CONFIG_PATH= PATH_TO_SAMPLES/tracing/go-server/conf/dubbogo.yml
+func main() {
+	config.SetProviderService(&GreeterProvider{})
+	//initJaeger()
+	if err := config.Load(); err != nil {
+		panic(err)
+	}
+	select {}
+}
diff --git a/tracing/triple/go-server/conf/dubbogo.yml b/tracing/triple/go-server/conf/dubbogo.yml
new file mode 100644
index 0000000..236b17c
--- /dev/null
+++ b/tracing/triple/go-server/conf/dubbogo.yml
@@ -0,0 +1,18 @@
+dubbo:
+  application:
+    name: IGreeterServer
+  registries:
+    demoZK:
+      protocol: zookeeper
+      address: 127.0.0.1:2181
+  protocols:
+    triple:
+      name: tri
+      port: 20000
+  tracing:
+    mytracingKey:
+      address: "http://tracing-analysis-dc-hz.aliyuncs.com/XXXXXXXX/api/traces"
+  provider:
+    services:
+      GreeterProvider:
+        interface: com.apache.dubbo.sample.basic.IGreeter # must be compatible with grpc or dubbo-java
\ No newline at end of file