@@ -115,3 +115,32 @@ def test_parent(self):
115115 child_span .attributes .get ("service" ), self .test_service
116116 )
117117 self .assertEqual (child_span .name , "GET" )
118+
119+
120+ class TestRedisDBIndexInstrument (TestBase ):
121+
122+ def setUp (self ):
123+ super ().setUp ()
124+ self .redis_client = redis .Redis (port = 6379 , db = 10 )
125+ self .redis_client .flushall ()
126+ RedisInstrumentor ().instrument (tracer_provider = self .tracer_provider )
127+
128+ def tearDown (self ):
129+ super ().tearDown ()
130+ RedisInstrumentor ().uninstrument ()
131+
132+ def _check_span (self , span , name ):
133+ self .assertEqual (span .name , name )
134+ self .assertIs (span .status .status_code , trace .status .StatusCode .UNSET )
135+ self .assertEqual (span .attributes ["net.peer.name" ], "localhost" )
136+ self .assertEqual (span .attributes ["net.peer.ip" ], 6379 )
137+ self .assertEqual (span .attributes ["db.redis.database_index" ], 10 )
138+ self .assertNotIn ("db.name" , span .attributes )
139+
140+ def test_get (self ):
141+ self .assertIsNone (self .redis_client .get ("paneer" ))
142+ spans = self .memory_exporter .get_finished_spans ()
143+ self .assertEqual (len (spans ), 1 )
144+ span = spans [0 ]
145+ self ._check_span (span , "GET" )
146+ self .assertEqual (span .attributes .get ("db.statement" ), "GET paneer" )
0 commit comments