Skip to content

Commit 4fc783c

Browse files
committed
fix(redisotel): add the namespace attribute
1 parent ec9a74d commit 4fc783c

File tree

3 files changed

+39
-23
lines changed

3 files changed

+39
-23
lines changed

extra/redisotel/go.mod

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
module github.com/redis/go-redis/extra/redisotel/v9
22

3-
go 1.19
3+
go 1.22
4+
5+
toolchain go1.23.0
46

57
replace github.com/redis/go-redis/v9 => ../..
68

@@ -9,20 +11,18 @@ replace github.com/redis/go-redis/extra/rediscmd/v9 => ../rediscmd
911
require (
1012
github.com/redis/go-redis/extra/rediscmd/v9 v9.6.2
1113
github.com/redis/go-redis/v9 v9.6.2
12-
go.opentelemetry.io/otel v1.22.0
13-
go.opentelemetry.io/otel/metric v1.22.0
14+
go.opentelemetry.io/otel v1.31.0
15+
go.opentelemetry.io/otel/metric v1.31.0
1416
go.opentelemetry.io/otel/sdk v1.22.0
15-
go.opentelemetry.io/otel/trace v1.22.0
17+
go.opentelemetry.io/otel/trace v1.31.0
1618
)
1719

1820
require (
1921
github.com/cespare/xxhash/v2 v2.2.0 // indirect
2022
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
21-
github.com/go-logr/logr v1.4.1 // indirect
23+
github.com/go-logr/logr v1.4.2 // indirect
2224
github.com/go-logr/stdr v1.2.2 // indirect
2325
golang.org/x/sys v0.16.0 // indirect
2426
)
2527

26-
retract (
27-
v9.5.3 // This version was accidentally released.
28-
)
28+
retract v9.5.3 // This version was accidentally released.

extra/redisotel/go.sum

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,33 @@
11
github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs=
2+
github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c=
23
github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA=
4+
github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0=
35
github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
46
github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
57
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
8+
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
69
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
710
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
811
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
9-
github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ=
10-
github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
12+
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
13+
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
1114
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
1215
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
1316
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
17+
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
1418
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
15-
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
16-
go.opentelemetry.io/otel v1.22.0 h1:xS7Ku+7yTFvDfDraDIJVpw7XPyuHlB9MCiqqX5mcJ6Y=
17-
go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI=
18-
go.opentelemetry.io/otel/metric v1.22.0 h1:lypMQnGyJYeuYPhOM/bgjbFM6WE44W1/T45er4d8Hhg=
19-
go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY=
19+
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
20+
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
21+
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
22+
go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY=
23+
go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE=
24+
go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE=
25+
go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY=
2026
go.opentelemetry.io/otel/sdk v1.22.0 h1:6coWHw9xw7EfClIC/+O31R8IY3/+EiRFHevmHafB2Gw=
2127
go.opentelemetry.io/otel/sdk v1.22.0/go.mod h1:iu7luyVGYovrRpe2fmj3CVKouQNdTOkxtLzPvPz1DOc=
22-
go.opentelemetry.io/otel/trace v1.22.0 h1:Hg6pPujv0XG9QaVbGOBVHunyuLcCC3jN7WEhPx83XD0=
23-
go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo=
28+
go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys=
29+
go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A=
2430
golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU=
2531
golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
2632
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
33+
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

extra/redisotel/tracing.go

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package redisotel
22

33
import (
44
"context"
5+
"errors"
56
"fmt"
67
"net"
78
"runtime"
@@ -10,7 +11,7 @@ import (
1011

1112
"go.opentelemetry.io/otel/attribute"
1213
"go.opentelemetry.io/otel/codes"
13-
semconv "go.opentelemetry.io/otel/semconv/v1.24.0"
14+
semconv "go.opentelemetry.io/otel/semconv/v1.26.0"
1415
"go.opentelemetry.io/otel/trace"
1516

1617
"github.com/redis/go-redis/extra/rediscmd/v9"
@@ -27,7 +28,7 @@ func InstrumentTracing(rdb redis.UniversalClient, opts ...TracingOption) error {
2728
opt := rdb.Options()
2829
connString := formatDBConnString(opt.Network, opt.Addr)
2930
opts = addServerAttributes(opts, opt.Addr)
30-
opts = append(opts, WithAttributes(semconv.ServiceNamespace(strconv.Itoa(opt.DB))))
31+
opts = append(opts, WithAttributes(semconv.DBNamespace(strconv.Itoa(opt.DB))))
3132
rdb.AddHook(newTracingHook(connString, opts...))
3233
return nil
3334
case *redis.ClusterClient:
@@ -77,7 +78,9 @@ func newTracingHook(connString string, opts ...TracingOption) *tracingHook {
7778
)
7879
}
7980
if connString != "" {
80-
conf.attrs = append(conf.attrs, semconv.DBConnectionString(connString))
81+
conf.attrs = append(conf.attrs,
82+
attribute.String("db.connection_string", connString), // Deprecated, use ServerAddress and ServerPort
83+
)
8184
}
8285

8386
return &tracingHook{
@@ -117,7 +120,10 @@ func (th *tracingHook) ProcessHook(hook redis.ProcessHook) redis.ProcessHook {
117120

118121
if th.conf.dbStmtEnabled {
119122
cmdString := rediscmd.CmdString(cmd)
120-
attrs = append(attrs, semconv.DBStatement(cmdString))
123+
attrs = append(attrs,
124+
attribute.String("db.statement", cmdString), // Deprecated, use DBQueryText
125+
semconv.DBQueryText(cmdString),
126+
)
121127
}
122128

123129
opts := th.spanOpts
@@ -150,7 +156,10 @@ func (th *tracingHook) ProcessPipelineHook(
150156

151157
summary, cmdsString := rediscmd.CmdsString(cmds)
152158
if th.conf.dbStmtEnabled {
153-
attrs = append(attrs, semconv.DBStatement(cmdsString))
159+
attrs = append(attrs,
160+
attribute.String("db.statement", cmdsString), // Deprecated, use DBQueryText
161+
semconv.DBQueryText(cmdsString),
162+
)
154163
}
155164

156165
opts := th.spanOpts
@@ -168,7 +177,7 @@ func (th *tracingHook) ProcessPipelineHook(
168177
}
169178

170179
func recordError(span trace.Span, err error) {
171-
if err != redis.Nil {
180+
if !errors.Is(err, redis.Nil) {
172181
span.RecordError(err)
173182
span.SetStatus(codes.Error, err.Error())
174183
}

0 commit comments

Comments
 (0)