This is an automated email from the ASF dual-hosted git repository. laurence pushed a commit to branch ftr/triple-tracing in repository https://gitbox.apache.org/repos/asf/dubbo-go.git
commit ab1116937abb3d286b69f3054838d9bdf6c8cda8 Author: LaurenceLiZhixin <[email protected]> AuthorDate: Thu Nov 18 21:29:45 2021 +0800 ftr: triple tracing --- common/constant/key.go | 2 ++ config/config_loader.go | 4 ++++ config/consumer_config.go | 8 +++++++ config/provider_config.go | 8 +++++++ config/reference_config.go | 5 +++++ config/root_config.go | 6 +++++ config/service_config.go | 5 +++++ config/tracing_config.go | 46 ++++++++++++++++++++++++++++++++++++++ go.mod | 4 ++-- go.sum | 32 ++++++++++++++++++++++---- protocol/dubbo3/dubbo3_invoker.go | 26 +++++++++++++++++++-- protocol/dubbo3/dubbo3_protocol.go | 25 +++++++++++++++++++-- 12 files changed, 161 insertions(+), 10 deletions(-) diff --git a/common/constant/key.go b/common/constant/key.go index 24378de..d317979 100644 --- a/common/constant/key.go +++ b/common/constant/key.go @@ -207,6 +207,7 @@ const ( ShutdownConfigPrefix = "dubbo.shutdown" MetadataReportPrefix = "dubbo.metadata-report" RouterConfigPrefix = "dubbo.router" + TracingConfigPrefix = "dubbo.tracing" LoggerConfigPrefix = "dubbo.logger" ) @@ -258,6 +259,7 @@ const ( const ( TracingRemoteSpanCtx = DubboCtxKey("tracing.remote.span.ctx") + TracingConfigKey = "config.tracing" ) // Use for router module diff --git a/config/config_loader.go b/config/config_loader.go index 44c2abd..cd0eb3b 100644 --- a/config/config_loader.go +++ b/config/config_loader.go @@ -166,6 +166,10 @@ func GetMetricConfig() *MetricConfig { return rootConfig.Metric } +func GetTracingConfig(tracingKey string) *TracingConfig { + return rootConfig.Tracing[tracingKey] +} + func GetMetadataReportConfg() *MetadataReportConfig { return rootConfig.MetadataReport } diff --git a/config/consumer_config.go b/config/consumer_config.go index 930b2e5..fb6735b 100644 --- a/config/consumer_config.go +++ b/config/consumer_config.go @@ -47,6 +47,7 @@ type ConsumerConfig struct { Check bool `yaml:"check" json:"check,omitempty" property:"check"` References map[string]*ReferenceConfig `yaml:"references" json:"references,omitempty" property:"references"` + TracingKey string `yaml:"tracing-key" json:"tracing-key" property:"tracing-key"` FilterConf interface{} `yaml:"filter-conf" json:"filter-conf,omitempty" property:"filter-conf"` MaxWaitTimeForServiceDiscovery string `default:"3s" yaml:"max-wait-time-for-service-discovery" json:"max-wait-time-for-service-discovery,omitempty" property:"max-wait-time-for-service-discovery"` @@ -67,6 +68,12 @@ func (cc *ConsumerConfig) Init(rc *RootConfig) error { if len(cc.RegistryIDs) <= 0 { cc.RegistryIDs = rc.getRegistryIds() } + if cc.TracingKey == "" && len(rc.Tracing) > 0 { + for k, _ := range rc.Tracing { + cc.TracingKey = k + break + } + } for _, reference := range cc.References { if err := reference.Init(rc); err != nil { return err @@ -78,6 +85,7 @@ func (cc *ConsumerConfig) Init(rc *RootConfig) error { if err := verify(cc); err != nil { return err } + cc.rootConfig = rc return nil } diff --git a/config/provider_config.go b/config/provider_config.go index 043a586..6d02358 100644 --- a/config/provider_config.go +++ b/config/provider_config.go @@ -37,6 +37,8 @@ type ProviderConfig struct { Register bool `yaml:"register" json:"register" property:"register"` // RegistryIDs is registry ids list RegistryIDs []string `yaml:"registry-ids" json:"registry-ids" property:"registry-ids"` + // TracingKey is tracing ids list + TracingKey string `yaml:"tracing-key" json:"tracing-key" property:"tracing-key"` // Services services Services map[string]*ServiceConfig `yaml:"services" json:"services,omitempty" property:"services"` @@ -67,6 +69,12 @@ func (c *ProviderConfig) Init(rc *RootConfig) error { if len(c.RegistryIDs) <= 0 { c.RegistryIDs = rc.getRegistryIds() } + if c.TracingKey == "" && len(rc.Tracing) > 0 { + for k, _ := range rc.Tracing { + c.TracingKey = k + break + } + } for _, service := range c.Services { if err := service.Init(rc); err != nil { return err diff --git a/config/reference_config.go b/config/reference_config.go index b18afb2..39a54dd 100644 --- a/config/reference_config.go +++ b/config/reference_config.go @@ -67,6 +67,7 @@ type ReferenceConfig struct { Sticky bool `yaml:"sticky" json:"sticky,omitempty" property:"sticky"` RequestTimeout string `yaml:"timeout" json:"timeout,omitempty" property:"timeout"` ForceTag bool `yaml:"force.tag" json:"force.tag,omitempty" property:"force.tag"` + TracingKey string `yaml:"tracing-key" json:"tracing-key,omitempty" propertiy:"tracing-key"` rootConfig *RootConfig metaDataType string @@ -97,6 +98,9 @@ func (rc *ReferenceConfig) Init(root *RootConfig) error { if len(rc.RegistryIDs) <= 0 { rc.RegistryIDs = root.Consumer.RegistryIDs } + if rc.TracingKey == "" { + rc.TracingKey = root.Consumer.TracingKey + } if rc.Check == nil { rc.Check = &root.Consumer.Check } @@ -244,6 +248,7 @@ func (rc *ReferenceConfig) getURLMap() url.Values { urlMap.Set(constant.RegistryRoleKey, strconv.Itoa(common.CONSUMER)) urlMap.Set(constant.ProvidedBy, rc.ProvidedBy) urlMap.Set(constant.SerializationKey, rc.Serialization) + urlMap.Set(constant.TracingConfigKey, rc.TracingKey) urlMap.Set(constant.ReleaseKey, "dubbo-golang-"+constant.Version) urlMap.Set(constant.SideKey, (common.RoleType(common.CONSUMER)).Role()) diff --git a/config/root_config.go b/config/root_config.go index 33efb7a..bec9969 100644 --- a/config/root_config.go +++ b/config/root_config.go @@ -66,6 +66,8 @@ type RootConfig struct { Metric *MetricConfig `yaml:"metrics" json:"metrics,omitempty" property:"metrics"` + Tracing map[string]*TracingConfig `yaml:"tracing" json:"tracing,omitempty" property:"tracing"` + // Logger log Logger *LoggerConfig `yaml:"logger" json:"logger,omitempty" property:"logger"` @@ -181,6 +183,9 @@ func (rc *RootConfig) Init() error { if err := rc.Metric.Init(); err != nil { return err } + for _, t := range rc.Tracing { + t.Init() + } if err := initRouterConfig(rc); err != nil { return err } @@ -214,6 +219,7 @@ func newEmptyRootConfig() *RootConfig { Application: NewApplicationConfigBuilder().Build(), Registries: make(map[string]*RegistryConfig), Protocols: make(map[string]*ProtocolConfig), + Tracing: make(map[string]*TracingConfig), Provider: NewProviderConfigBuilder().Build(), Consumer: NewConsumerConfigBuilder().Build(), Metric: NewMetricConfigBuilder().Build(), diff --git a/config/service_config.go b/config/service_config.go index b75d125..9b8c9b1 100644 --- a/config/service_config.go +++ b/config/service_config.go @@ -75,6 +75,7 @@ type ServiceConfig struct { ParamSign string `yaml:"param.sign" json:"param.sign,omitempty" property:"param.sign"` Tag string `yaml:"tag" json:"tag,omitempty" property:"tag"` GrpcMaxMessageSize int `default:"4" yaml:"max_message_size" json:"max_message_size,omitempty"` + TracingKey string `yaml:"tracing-key" json:"tracing-key,omitempty" propertiy:"tracing-key"` RCProtocolsMap map[string]*ProtocolConfig RCRegistriesMap map[string]*RegistryConfig @@ -120,6 +121,9 @@ func (svc *ServiceConfig) Init(rc *RootConfig) error { svc.ProtocolIDs = append(svc.ProtocolIDs, k) } } + if svc.TracingKey == "" { + svc.TracingKey = rc.Provider.TracingKey + } svc.export = true return verify(svc) } @@ -377,6 +381,7 @@ func (svc *ServiceConfig) getUrlMap() url.Values { urlMap.Set(constant.TPSLimitRateKey, svc.TpsLimitRate) urlMap.Set(constant.TPSLimiterKey, svc.TpsLimiter) urlMap.Set(constant.TPSRejectedExecutionHandlerKey, svc.TpsLimitRejectedHandler) + urlMap.Set(constant.TracingConfigKey, svc.TracingKey) // execute limit filter urlMap.Set(constant.ExecuteLimitKey, svc.ExecuteLimit) diff --git a/config/tracing_config.go b/config/tracing_config.go new file mode 100644 index 0000000..b30dc89 --- /dev/null +++ b/config/tracing_config.go @@ -0,0 +1,46 @@ +/* + * 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 config + +import ( + "github.com/creasty/defaults" +) + +import ( + "dubbo.apache.org/dubbo-go/v3/common/constant" +) + +// TracingConfig is the configuration of the tracing. +type TracingConfig struct { + Name string `default:"jaeger" yaml:"name" json:"name,omitempty" property:"name"` // jaeger or zipkin(todo) + ServiceName string `yaml:"serviceName" json:"serviceName,omitempty" property:"serviceName"` + Address string `yaml:"address" json:"address,omitempty" property:"address"` + UseAgent bool `default:"false" yaml:"use-agent" json:"use_agent,omitempty" property:"use-agent"` +} + +// Prefix dubbo.router +func (TracingConfig) Prefix() string { + return constant.TracingConfigPrefix +} + +func (c *TracingConfig) Init() error { + if err := defaults.Set(c); err != nil { + return err + } + return verify(c) +} diff --git a/go.mod b/go.mod index 3256db0..abbe793 100644 --- a/go.mod +++ b/go.mod @@ -13,8 +13,8 @@ require ( github.com/creasty/defaults v1.5.2 github.com/dubbogo/go-zookeeper v1.0.3 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/emicklei/go-restful/v3 v3.7.1 github.com/fsnotify/fsnotify v1.5.1 github.com/ghodss/yaml v1.0.0 diff --git a/go.sum b/go.sum index 4ab084c..ebe18df 100644 --- a/go.sum +++ b/go.sum @@ -45,6 +45,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= @@ -62,6 +64,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= @@ -177,13 +180,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= @@ -214,6 +217,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= @@ -283,6 +287,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= @@ -476,6 +481,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= @@ -744,6 +750,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.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= @@ -827,7 +837,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= @@ -837,7 +850,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= @@ -1016,11 +1031,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= @@ -1076,6 +1093,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= @@ -1243,6 +1266,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/protocol/dubbo3/dubbo3_invoker.go b/protocol/dubbo3/dubbo3_invoker.go index da42a32..88af74d 100644 --- a/protocol/dubbo3/dubbo3_invoker.go +++ b/protocol/dubbo3/dubbo3_invoker.go @@ -69,14 +69,36 @@ func NewDubboInvoker(url *common.URL) (*DubboInvoker, error) { dubboSerializaerType := url.GetParam(constant.SerializationKey, constant.ProtobufSerialization) triCodecType := tripleConstant.CodecType(dubboSerializaerType) // new triple client - triOption := triConfig.NewTripleOption( + + opts := []triConfig.OptionFunction{ triConfig.WithClientTimeout(uint32(timeout.Seconds())), triConfig.WithCodecType(triCodecType), triConfig.WithLocation(url.Location), triConfig.WithHeaderAppVersion(url.GetParam(constant.AppVersionKey, "")), triConfig.WithHeaderGroup(url.GetParam(constant.GroupKey, "")), triConfig.WithLogger(logger.GetLogger()), - ) + } + + tracingKey := url.GetParam(constant.TracingConfigKey, "") + if tracingKey != "" { + tracingConfig := config.GetTracingConfig(tracingKey) + if tracingConfig != nil { + if tracingConfig.Name == "jaeger" { + if tracingConfig.ServiceName == "" { + tracingConfig.ServiceName = config.GetApplicationConfig().Name + } + opts = append(opts, triConfig.WithJaegerConfig( + tracingConfig.Address, + tracingConfig.ServiceName, + tracingConfig.UseAgent, + )) + } else { + logger.Warnf("unsupported tracing name %s, now triple only support jaeger", tracingConfig.Name) + } + } + } + + triOption := triConfig.NewTripleOption(opts...) client, err := triple.NewTripleClient(consumerService, triOption) if err != nil { diff --git a/protocol/dubbo3/dubbo3_protocol.go b/protocol/dubbo3/dubbo3_protocol.go index 2ad3dff..0d18b40 100644 --- a/protocol/dubbo3/dubbo3_protocol.go +++ b/protocol/dubbo3/dubbo3_protocol.go @@ -205,11 +205,32 @@ func (dp *DubboProtocol) openServer(url *common.URL, tripleCodecType tripleConst dp.serverMap[url.Location].RefreshService() return } - triOption := triConfig.NewTripleOption( + + opts := []triConfig.OptionFunction{ triConfig.WithCodecType(tripleCodecType), triConfig.WithLocation(url.Location), triConfig.WithLogger(logger.GetLogger()), - ) + } + tracingKey := url.GetParam(constant.TracingConfigKey, "") + if tracingKey != "" { + tracingConfig := config.GetTracingConfig(tracingKey) + if tracingConfig != nil { + if tracingConfig.Name == "jaeger" { + if tracingConfig.ServiceName == "" { + tracingConfig.ServiceName = config.GetApplicationConfig().Name + } + opts = append(opts, triConfig.WithJaegerConfig( + tracingConfig.Address, + tracingConfig.ServiceName, + tracingConfig.UseAgent, + )) + } else { + logger.Warnf("unsupported tracing name %s, now triple only support jaeger", tracingConfig.Name) + } + } + } + + triOption := triConfig.NewTripleOption(opts...) _, ok = dp.ExporterMap().Load(url.ServiceKey()) if !ok {
