diff --git a/common/component/redis/v9client.go b/common/component/redis/v9client.go index 23b20d8ac7..09691203b9 100644 --- a/common/component/redis/v9client.go +++ b/common/component/redis/v9client.go @@ -16,9 +16,11 @@ package redis import ( "context" "crypto/tls" + "fmt" "strings" "time" + redisotel "github.com/redis/go-redis/extra/redisotel/v9" v9 "github.com/redis/go-redis/v9" ) @@ -460,8 +462,17 @@ func newV9Client(s *Settings) (RedisClient, error) { } } + client := v9.NewClient(options) + + if err := redisotel.InstrumentTracing(client); err != nil { + return nil, fmt.Errorf("failed to instrument Redis tracing: %w", err) + } + if err := redisotel.InstrumentMetrics(client); err != nil { + return nil, fmt.Errorf("failed to instrument Redis metrics: %w", err) + } + return v9Client{ - client: v9.NewClient(options), + client: client, readTimeout: s.ReadTimeout, writeTimeout: s.WriteTimeout, dialTimeout: s.DialTimeout, diff --git a/go.mod b/go.mod index 0d24d1cb13..4bd0161b33 100644 --- a/go.mod +++ b/go.mod @@ -110,7 +110,8 @@ require ( github.com/pkg/sftp v1.13.7 github.com/puzpuzpuz/xsync/v3 v3.0.0 github.com/rabbitmq/amqp091-go v1.9.0 - github.com/redis/go-redis/v9 v9.6.3 + github.com/redis/go-redis/extra/redisotel/v9 v9.16.0 + github.com/redis/go-redis/v9 v9.16.0 github.com/riferrei/srclient v0.7.2 github.com/sendgrid/sendgrid-go v3.13.0+incompatible github.com/sijms/go-ora/v2 v2.8.22 @@ -368,6 +369,7 @@ require ( github.com/prometheus/procfs v0.16.1 // indirect github.com/prometheus/statsd_exporter v0.22.7 // indirect github.com/rcrowley/go-metrics v0.0.0-20250401214520-65e299d6c5c9 // indirect + github.com/redis/go-redis/extra/rediscmd/v9 v9.16.0 // indirect github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect github.com/rs/zerolog v1.31.0 // indirect github.com/russross/blackfriday v1.6.0 // indirect diff --git a/go.sum b/go.sum index 5a8bc06ef4..359d4eb969 100644 --- a/go.sum +++ b/go.sum @@ -1512,8 +1512,12 @@ github.com/rabbitmq/amqp091-go v1.9.0/go.mod h1:+jPrT9iY2eLjRaMSRHUhc3z14E/l85kv github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20250401214520-65e299d6c5c9 h1:bsUq1dX0N8AOIL7EB/X911+m4EHsnWEHeJ0c+3TTBrg= github.com/rcrowley/go-metrics v0.0.0-20250401214520-65e299d6c5c9/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/redis/go-redis/v9 v9.6.3 h1:8Dr5ygF1QFXRxIH/m3Xg9MMG1rS8YCtAgosrsewT6i0= -github.com/redis/go-redis/v9 v9.6.3/go.mod h1:0C0c6ycQsdpVNQpxb1njEQIqkx5UcsM8FJCQLgE9+RA= +github.com/redis/go-redis/extra/rediscmd/v9 v9.16.0 h1:zAFQyFxJ3QDwpPUY/CKn22LI5+B8m/lUyffzq2+8ENs= +github.com/redis/go-redis/extra/rediscmd/v9 v9.16.0/go.mod h1:ouOc8ujB2wdUG6o0RrqaPl2tI6cenExC0KkJQ+PHXmw= +github.com/redis/go-redis/extra/redisotel/v9 v9.16.0 h1:+a9h9qxFXdf3gX0FXnDcz7X44ZBFUPq58Gblq7aMU4s= +github.com/redis/go-redis/extra/redisotel/v9 v9.16.0/go.mod h1:EtTTC7vnKWgznfG6kBgl9ySLqd7NckRCFUBzVXdeHeI= +github.com/redis/go-redis/v9 v9.16.0 h1:OotgqgLSRCmzfqChbQyG1PHC3tLNR89DG4jdOERSEP4= +github.com/redis/go-redis/v9 v9.16.0/go.mod h1:u410H11HMLoB+TP67dz8rL9s6QW2j76l0//kSOd3370= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rhnvrm/simples3 v0.6.1/go.mod h1:Y+3vYm2V7Y4VijFoJHHTrja6OgPrJ2cBti8dPGkC3sA=