Skip to content

Commit c2a39be

Browse files
hjxplongjunhu
andauthored
feat: support opentelemetry (#346)
* feat: add batch consumer message * feat: add batch consumer message * fix: log record rawConfig error field * feature:support opentelemetry * feature:support opentelemetry * chore: remove example to jupiter-examples * update resty test * update cosmtrek/air * refactor: optimize rocketmq * refactor: optimize rocketmq Co-authored-by: longjunhu <[email protected]>
1 parent 10af522 commit c2a39be

File tree

25 files changed

+505
-623
lines changed

25 files changed

+505
-623
lines changed

go.mod

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ require (
1111
github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0
1212
github.com/davecgh/go-spew v1.1.1
1313
github.com/dimiro1/banner v1.1.0
14-
github.com/fatih/color v1.13.0 // indirect
14+
github.com/fatih/color v1.13.0
1515
github.com/fatih/structtag v1.2.0
1616
github.com/flosch/pongo2 v0.0.0-20200518135938-dfb43dbdc22a
1717
github.com/fsnotify/fsnotify v1.5.1
@@ -21,6 +21,7 @@ require (
2121
github.com/go-resty/resty/v2 v2.7.0
2222
github.com/gogf/gf v1.13.3
2323
github.com/golang/protobuf v1.5.2
24+
github.com/golang/snappy v0.0.3 // indirect
2425
github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00 // indirect
2526
github.com/gorilla/websocket v1.4.2
2627
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0
@@ -35,24 +36,26 @@ require (
3536
github.com/modern-go/reflect2 v1.0.2
3637
github.com/onsi/ginkgo v1.16.2
3738
github.com/onsi/gomega v1.13.0
38-
github.com/opentracing/opentracing-go v1.2.0
39-
github.com/pelletier/go-toml v1.9.4 // indirect
4039
github.com/philchia/agollo/v4 v4.1.3
4140
github.com/pkg/errors v0.9.1
4241
github.com/prometheus/client_golang v1.12.1
4342
github.com/robfig/cron/v3 v3.0.1
4443
github.com/sirupsen/logrus v1.8.1 // indirect
4544
github.com/smallnest/weighted v0.0.0-20200122032019-adf21c9b8bd1
4645
github.com/smartystreets/goconvey v1.6.4
47-
github.com/stretchr/testify v1.7.0
46+
github.com/stretchr/testify v1.7.1
4847
github.com/tidwall/pretty v1.2.0
49-
github.com/uber/jaeger-client-go v2.23.1+incompatible
5048
github.com/urfave/cli v1.22.5
5149
github.com/valyala/fasthttp v1.34.0
5250
github.com/xlab/treeprint v1.1.0
5351
go.etcd.io/etcd/api/v3 v3.5.1
5452
go.etcd.io/etcd/client/v3 v3.5.0
5553
go.mongodb.org/mongo-driver v1.5.1
54+
go.opentelemetry.io/otel v1.7.0
55+
go.opentelemetry.io/otel/exporters/jaeger v1.7.0
56+
go.opentelemetry.io/otel/sdk v1.7.0
57+
go.opentelemetry.io/otel/trace v1.7.0
58+
go.uber.org/atomic v1.9.0 // indirect
5659
go.uber.org/automaxprocs v1.4.0
5760
go.uber.org/multierr v1.7.0
5861
go.uber.org/zap v1.21.0
@@ -63,19 +66,15 @@ require (
6366

6467
require (
6568
github.com/aws/aws-sdk-go v1.40.45 // indirect
66-
github.com/cosmtrek/air v0.0.0-20220504050646-0c5e73afb027
69+
github.com/cosmtrek/air v1.40.1
6770
github.com/cpuguy83/go-md2man/v2 v2.0.1 // indirect
6871
github.com/golang/mock v1.6.0 // indirect
69-
github.com/golang/snappy v0.0.3 // indirect
70-
github.com/google/go-cmp v0.5.6 // indirect
7172
github.com/kr/pretty v0.2.0 // indirect
7273
github.com/labstack/gommon v0.3.1 // indirect
7374
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect
7475
github.com/smartystreets/assertions v0.0.0-20190401211740-f487f9de1cd3 // indirect
7576
github.com/stretchr/objx v0.2.0 // indirect
7677
github.com/tidwall/gjson v1.13.0 // indirect
77-
github.com/uber/jaeger-lib v2.2.0+incompatible // indirect
7878
go.etcd.io/etcd/client/pkg/v3 v3.5.1 // indirect
79-
go.uber.org/atomic v1.9.0 // indirect
8079
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect
8180
)

go.sum

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,6 @@ github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWH
106106
github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
107107
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
108108
github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
109-
github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd h1:qMd81Ts1T2OTKmB4acZcyKaMtRnY5Y44NuXGX2GFJ1w=
110109
github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
111110
github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0 h1:sDMmm+q/3+BukdIpxwO365v/Rbspp2Nt5XntgQRXq8Q=
112111
github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM=
@@ -120,13 +119,15 @@ github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7
120119
github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI=
121120
github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
122121
github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
123-
github.com/cosmtrek/air v0.0.0-20220504050646-0c5e73afb027 h1:ODHCcjveTvcMd/oO2I8PRtnnJ9qAzZ2l14yE8BDsN7Y=
124-
github.com/cosmtrek/air v0.0.0-20220504050646-0c5e73afb027/go.mod h1:I/kZTPQfF8qS+4h7zmQDxEB9lGAeQ3R2tWeCYvPPAY0=
122+
github.com/cosmtrek/air v1.40.1 h1:Q1wQ5lunOHGIfpKpsxpz9fk6s4fN/+9eJjo++HHWIbE=
123+
github.com/cosmtrek/air v1.40.1/go.mod h1:Urz3nl9UBvc/rntZkXRBttYWt4sBeh2NZaGcdBbkNak=
125124
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
126125
github.com/cpuguy83/go-md2man/v2 v2.0.1 h1:r/myEWzV9lfsM1tFLgDyu0atFtJ1fXn261LKYj/3DxU=
127126
github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
128127
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
129128
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
129+
github.com/creack/pty v1.1.11 h1:07n33Z8lZxZ2qwegKbObQohDhXDQxiMMz1NOUGYlesw=
130+
github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
130131
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
131132
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
132133
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -187,6 +188,11 @@ github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vb
187188
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
188189
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
189190
github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
191+
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
192+
github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0=
193+
github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
194+
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
195+
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
190196
github.com/go-ole/go-ole v1.2.4 h1:nNBDSCOigTSiarFpYE9J/KtEA1IOW4CNeqT9TQDqCxI=
191197
github.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM=
192198
github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A=
@@ -291,8 +297,8 @@ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
291297
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
292298
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
293299
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
294-
github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ=
295-
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
300+
github.com/google/go-cmp v0.5.7 h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o=
301+
github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
296302
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
297303
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
298304
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
@@ -503,8 +509,6 @@ github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go
503509
github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74=
504510
github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
505511
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
506-
github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
507-
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
508512
github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA=
509513
github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
510514
github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4=
@@ -513,9 +517,8 @@ github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIw
513517
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
514518
github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
515519
github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE=
520+
github.com/pelletier/go-toml v1.8.1 h1:1Nf83orprkJyknT6h7zbuEGUEjcyVlCxSUGTENmNCRM=
516521
github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc=
517-
github.com/pelletier/go-toml v1.9.4 h1:tjENF6MfZAg8e4ZmZTeWaWiT2vXtsoO6+iuOjFhECwM=
518-
github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
519522
github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac=
520523
github.com/philchia/agollo/v4 v4.1.3 h1:UH4P9Zhm6hONGx1Ce9OjWfqPbstcQtfO0Nkicw7M5d4=
521524
github.com/philchia/agollo/v4 v4.1.3/go.mod h1:SBdQmfqqu/XCWJ1MDzYcCL3X+p3VJ+uQBy0nxxqjexg=
@@ -613,8 +616,9 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV
613616
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
614617
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
615618
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
616-
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
617619
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
620+
github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY=
621+
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
618622
github.com/tidwall/gjson v1.8.1/go.mod h1:5/xDoumyyDNerp2U36lyolv46b3uF/9Bu6OfyQ9GImk=
619623
github.com/tidwall/gjson v1.13.0 h1:3TFY9yxOQShrvmjdM76K+jc66zJeT6D3/VFFYCGQf7M=
620624
github.com/tidwall/gjson v1.13.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
@@ -630,10 +634,6 @@ github.com/tklauser/go-sysconf v0.3.6/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITn
630634
github.com/tklauser/numcpus v0.2.2 h1:oyhllyrScuYI6g+h/zUvNXNp1wy7x8qQy3t/piefldA=
631635
github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM=
632636
github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
633-
github.com/uber/jaeger-client-go v2.23.1+incompatible h1:uArBYHQR0HqLFFAypI7RsWTzPSj/bDpmZZuQjMLSg1A=
634-
github.com/uber/jaeger-client-go v2.23.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
635-
github.com/uber/jaeger-lib v2.2.0+incompatible h1:MxZXOiR2JuoANZ3J6DE/U0kSFv/eJ/GfSYVCjK7dyaw=
636-
github.com/uber/jaeger-lib v2.2.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
637637
github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo=
638638
github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw=
639639
github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs=
@@ -689,6 +689,14 @@ go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
689689
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
690690
go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
691691
go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
692+
go.opentelemetry.io/otel v1.7.0 h1:Z2lA3Tdch0iDcrhJXDIlC94XE+bxok1F9B+4Lz/lGsM=
693+
go.opentelemetry.io/otel v1.7.0/go.mod h1:5BdUoMIz5WEs0vt0CUEMtSSaTSHBBVwrhnz7+nrD5xk=
694+
go.opentelemetry.io/otel/exporters/jaeger v1.7.0 h1:wXgjiRldljksZkZrldGVe6XrG9u3kYDyQmkZwmm5dI0=
695+
go.opentelemetry.io/otel/exporters/jaeger v1.7.0/go.mod h1:PwQAOqBgqbLQRKlj466DuD2qyMjbtcPpfPfj+AqbSBs=
696+
go.opentelemetry.io/otel/sdk v1.7.0 h1:4OmStpcKVOfvDOgCt7UriAPtKolwIhxpnSNI/yK+1B0=
697+
go.opentelemetry.io/otel/sdk v1.7.0/go.mod h1:uTEOTwaqIVuTGiJN7ii13Ibp75wJmYUDe374q6cZwUU=
698+
go.opentelemetry.io/otel/trace v1.7.0 h1:O37Iogk1lEkMRXewVtZ1BBTVn5JEp8GrJvP92bJqC6o=
699+
go.opentelemetry.io/otel/trace v1.7.0/go.mod h1:fzLSB9nqR2eXzxPXb2JW9IKE+ScyXA48yyE4TNvoHqU=
692700
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
693701
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
694702
go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
@@ -885,6 +893,7 @@ golang.org/x/sys v0.0.0-20210316164454-77fc1eacc6aa/go.mod h1:h1NjWce9XRLGQEsW7w
885893
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
886894
golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
887895
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
896+
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
888897
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
889898
golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
890899
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=

pkg/client/grpc/interceptor.go

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,24 @@ import (
1919
"encoding/json"
2020
"errors"
2121
"fmt"
22+
"github.com/douyu/jupiter/pkg/xtrace"
23+
"go.opentelemetry.io/otel/attribute"
2224
"time"
2325

2426
"github.com/douyu/jupiter/pkg"
2527
"github.com/douyu/jupiter/pkg/xlog"
2628

2729
"github.com/douyu/jupiter/pkg/ecode"
2830
"github.com/douyu/jupiter/pkg/metric"
29-
"github.com/douyu/jupiter/pkg/trace"
3031
"github.com/douyu/jupiter/pkg/util/xcolor"
3132
"github.com/douyu/jupiter/pkg/util/xstring"
32-
"github.com/opentracing/opentracing-go/ext"
33+
34+
"go.opentelemetry.io/otel/codes"
35+
semconv "go.opentelemetry.io/otel/semconv/v1.10.0"
36+
"go.opentelemetry.io/otel/trace"
3337
"google.golang.org/grpc"
34-
"google.golang.org/grpc/codes"
3538
"google.golang.org/grpc/metadata"
3639
"google.golang.org/grpc/peer"
37-
"google.golang.org/grpc/status"
3840
)
3941

4042
var (
@@ -96,34 +98,32 @@ func debugUnaryClientInterceptor(addr string) grpc.UnaryClientInterceptor {
9698
}
9799

98100
func traceUnaryClientInterceptor() grpc.UnaryClientInterceptor {
99-
return func(ctx context.Context, method string, req, reply interface{}, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error {
101+
return func(ctx context.Context, method string, req, reply interface{}, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) (err error) {
100102
md, ok := metadata.FromOutgoingContext(ctx)
101103
if !ok {
102104
md = metadata.New(nil)
103105
} else {
104106
md = md.Copy()
105107
}
108+
tracer := xtrace.NewTracer(trace.SpanKindClient)
109+
attrs := []attribute.KeyValue{
110+
semconv.RPCSystemKey.String("grpc"),
111+
}
106112

107-
span, ctx := trace.StartSpanFromContext(
108-
ctx,
109-
method,
110-
trace.TagSpanKind("client"),
111-
trace.TagComponent("grpc"),
113+
ctx, span := tracer.Start(ctx, method, xtrace.MetadataReaderWriter(md), trace.WithAttributes(attrs...))
114+
ctx = metadata.NewOutgoingContext(ctx, md)
115+
span.SetAttributes(
116+
semconv.RPCMethodKey.String(method),
112117
)
113-
defer span.Finish()
114-
115-
err := invoker(trace.MetadataInjector(ctx, md), method, req, reply, cc, opts...)
116-
if err != nil {
117-
code := codes.Unknown
118-
if s, ok := status.FromError(err); ok {
119-
code = s.Code()
118+
defer func() {
119+
if err != nil {
120+
span.RecordError(err)
121+
span.SetStatus(codes.Error, err.Error())
120122
}
121-
span.SetTag("response_code", code)
122-
ext.Error.Set(span, true)
123-
124-
span.LogFields(trace.String("event", "error"), trace.String("message", err.Error()))
125-
}
126-
return err
123+
span.SetStatus(codes.Ok, "ok")
124+
span.End()
125+
}()
126+
return invoker(ctx, method, req, reply, cc, opts...)
127127
}
128128
}
129129

pkg/client/resty/resty.go

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,21 @@ package resty
1616

1717
import (
1818
"errors"
19+
"github.com/douyu/jupiter/pkg/xtrace"
20+
"go.opentelemetry.io/otel/attribute"
21+
"go.opentelemetry.io/otel/codes"
22+
"go.opentelemetry.io/otel/propagation"
1923
"net/http"
2024
"time"
2125

2226
"github.com/douyu/jupiter/pkg/conf"
2327
"github.com/douyu/jupiter/pkg/metric"
24-
"github.com/douyu/jupiter/pkg/trace"
2528
"github.com/douyu/jupiter/pkg/util/xdebug"
2629
"github.com/douyu/jupiter/pkg/util/xtime"
2730
"github.com/douyu/jupiter/pkg/xlog"
2831
"github.com/go-resty/resty/v2"
29-
"github.com/opentracing/opentracing-go"
30-
"github.com/opentracing/opentracing-go/ext"
32+
semconv "go.opentelemetry.io/otel/semconv/v1.10.0"
33+
"go.opentelemetry.io/otel/trace"
3134
"go.uber.org/zap"
3235
)
3336

@@ -125,33 +128,34 @@ func (config *Config) Build() (*resty.Client, error) {
125128

126129
client.OnError(func(r *resty.Request, err error) {
127130
if config.EnableTrace {
128-
span := opentracing.SpanFromContext(r.Context())
129-
ext.LogError(span, err)
130-
span.Finish()
131+
span := trace.SpanFromContext(r.Context())
132+
if err != nil {
133+
span.RecordError(err)
134+
span.SetStatus(codes.Error, err.Error())
135+
}
136+
span.End()
131137
}
132-
133138
if config.EnableMetric {
134139
metric.ClientHandleCounter.WithLabelValues(metric.TypeHTTP, "resty", r.Method, r.RawRequest.Host, "error").Inc()
135140
}
141+
136142
})
137143

138144
client.OnBeforeRequest(func(c *resty.Client, r *resty.Request) error {
139145
if config.EnableTrace {
140-
// 设置trace
141-
span, ctx := trace.StartSpanFromContext(
142-
r.Context(),
143-
"http_client_request",
144-
trace.MetadataExtractor(r.Header),
146+
tracer := xtrace.NewTracer(trace.SpanKindClient)
147+
attrs := []attribute.KeyValue{
148+
semconv.RPCSystemKey.String("http"),
149+
}
150+
ctx, span := tracer.Start(r.Context(), r.Method, propagation.HeaderCarrier(r.Header), trace.WithAttributes(attrs...))
151+
span.SetAttributes(
152+
semconv.RPCSystemKey.String("http"),
153+
semconv.PeerServiceKey.String("http_client_request"),
154+
semconv.HTTPMethodKey.String(r.Method),
155+
semconv.HTTPURLKey.String(r.URL),
145156
)
146-
147-
ext.SpanKindRPCClient.Set(span)
148-
ext.Component.Set(span, "http")
149-
ext.HTTPUrl.Set(span, r.URL)
150-
ext.HTTPMethod.Set(span, r.Method)
151-
152157
r.SetContext(ctx)
153158
}
154-
155159
return nil
156160
})
157161

@@ -170,7 +174,11 @@ func (config *Config) Build() (*resty.Client, error) {
170174
}
171175

172176
if config.EnableTrace {
173-
trace.SpanFromContext(r.Request.Context()).Finish()
177+
span := trace.SpanFromContext(r.Request.Context())
178+
span.SetAttributes(
179+
semconv.HTTPStatusCodeKey.Int64(int64(r.StatusCode())),
180+
)
181+
span.End()
174182
}
175183

176184
if config.SlowThreshold > time.Duration(0) {
@@ -195,7 +203,7 @@ func (config *Config) Build() (*resty.Client, error) {
195203
func (c *Config) MustBuild() *resty.Client {
196204
cc, err := c.Build()
197205
if err != nil {
198-
xlog.Panic("resty build failed", zap.Error(err))
206+
xlog.Panic("resty build failed", zap.Error(err), zap.Any("config", c))
199207
}
200208

201209
return cc

pkg/client/resty/resty_test.go

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@ import (
2020
"testing"
2121
"time"
2222

23-
"github.com/douyu/jupiter/pkg/trace"
24-
"github.com/douyu/jupiter/pkg/trace/jaeger"
2523
. "github.com/onsi/ginkgo"
2624
. "github.com/onsi/gomega"
2725
)
@@ -36,12 +34,6 @@ var _ = Describe("normal case", func() {
3634
config := DefaultConfig()
3735
config.Addr = "https://httpbin.org"
3836
config.EnableTrace = true
39-
40-
jaegerConfig := jaeger.DefaultConfig()
41-
// fast flush trace
42-
jaegerConfig.Reporter.BufferFlushInterval = time.Millisecond
43-
trace.SetGlobalTracer(jaegerConfig.Build())
44-
4537
res, err := config.MustBuild().R().Get("/get")
4638
Expect(err).Should(BeNil())
4739
Expect(res.Status()).Should(Equal("200 OK"))
@@ -61,10 +53,6 @@ var _ = Describe("normal case", func() {
6153
It("on error", func() {
6254
config := DefaultConfig()
6355
config.Addr = "https://httpbin.org"
64-
jaegerConfig := jaeger.DefaultConfig()
65-
// fast flush trace
66-
jaegerConfig.Reporter.BufferFlushInterval = time.Millisecond
67-
trace.SetGlobalTracer(jaegerConfig.Build())
6856

6957
res, err := config.MustBuild().R().Get("/status/302")
7058
Expect(err.(*url.Error).Err).Should(BeEquivalentTo(errors.New("auto redirect is disabled")))

0 commit comments

Comments
 (0)