package drivers import ( "context" "log/slog" "github.com/redis/go-redis/extra/redisotel/v9" "github.com/redis/go-redis/v9" ) func Redis(dsn RedisDSN) (redis.UniversalClient, error) { // Connect to Redis rdb := redis.NewUniversalClient(&redis.UniversalOptions{ Addrs: dsn.Hosts, MasterName: dsn.Master, Username: dsn.Username, Password: dsn.Password, DB: dsn.DB, }) if err := redisotel.InstrumentMetrics(rdb); err != nil { slog.Error("[Redis] Error starting otel metrics plugin!", "err", err) } if err := redisotel.InstrumentTracing(rdb); err != nil { slog.Error("[Redis] Error starting otel tracing plugin!", "err", err) } ctx := context.Background() // Ping Redis _, err := rdb.Ping(ctx).Result() return rdb, err }