@@ -33,8 +33,14 @@ import {
3333 SEMATTRS_DB_SYSTEM ,
3434 SEMATTRS_NET_PEER_NAME ,
3535 SEMATTRS_NET_PEER_PORT ,
36+ ATTR_DB_SYSTEM_NAME ,
37+ ATTR_DB_OPERATION_NAME ,
38+ ATTR_DB_QUERY_TEXT ,
39+ ATTR_SERVER_ADDRESS ,
40+ ATTR_SERVER_PORT ,
3641} from '@opentelemetry/semantic-conventions' ;
3742
43+ process . env . OTEL_SEMCONV_STABILITY_OPT_IN = 'database/dup' ;
3844const instrumentation = testUtils . registerInstrumentationTesting (
3945 new RedisInstrumentation ( )
4046) ;
@@ -50,6 +56,9 @@ const CONFIG = {
5056const URL = `redis://${ CONFIG . host } :${ CONFIG . port } ` ;
5157
5258const DEFAULT_ATTRIBUTES = {
59+ [ ATTR_DB_SYSTEM_NAME ] : 'redis' ,
60+ [ ATTR_SERVER_ADDRESS ] : CONFIG . host ,
61+ [ ATTR_SERVER_PORT ] : CONFIG . port ,
5362 [ SEMATTRS_DB_SYSTEM ] : DBSYSTEMVALUES_REDIS ,
5463 [ SEMATTRS_NET_PEER_NAME ] : CONFIG . host ,
5564 [ SEMATTRS_NET_PEER_PORT ] : CONFIG . port ,
@@ -105,29 +114,33 @@ describe('redis v2-v3', () => {
105114 description : string ;
106115 command : string ;
107116 args : string [ ] ;
108- expectedDbStatement : string ;
117+ expectedDbStatementOld : string ;
118+ expectedDbStatementStable : string ;
109119 method : ( cb : Callback < unknown > ) => unknown ;
110120 } > = [
111121 {
112122 description : 'insert' ,
113123 command : 'hset' ,
114124 args : [ 'hash' , 'random' , 'random' ] ,
115- expectedDbStatement : 'hash random [1 other arguments]' ,
125+ expectedDbStatementOld : 'hash random [1 other arguments]' ,
126+ expectedDbStatementStable : 'hset hash random [1 other arguments]' ,
116127 method : ( cb : Callback < number > ) =>
117128 client . hset ( 'hash' , 'random' , 'random' , cb ) ,
118129 } ,
119130 {
120131 description : 'get' ,
121132 command : 'get' ,
122133 args : [ 'test' ] ,
123- expectedDbStatement : 'test' ,
134+ expectedDbStatementOld : 'test' ,
135+ expectedDbStatementStable : 'get test' ,
124136 method : ( cb : Callback < string | null > ) => client . get ( 'test' , cb ) ,
125137 } ,
126138 {
127139 description : 'delete' ,
128140 command : 'del' ,
129141 args : [ 'test' ] ,
130- expectedDbStatement : 'test' ,
142+ expectedDbStatementOld : 'test' ,
143+ expectedDbStatementStable : 'del test' ,
131144 method : ( cb : Callback < number > ) => client . del ( 'test' , cb ) ,
132145 } ,
133146 ] ;
@@ -163,7 +176,9 @@ describe('redis v2-v3', () => {
163176 it ( `should create a child span for ${ operation . description } ` , done => {
164177 const attributes = {
165178 ...DEFAULT_ATTRIBUTES ,
166- [ SEMATTRS_DB_STATEMENT ] : `${ operation . command } ${ operation . expectedDbStatement } ` ,
179+ [ ATTR_DB_OPERATION_NAME ] : operation . command ,
180+ [ ATTR_DB_QUERY_TEXT ] : operation . expectedDbStatementStable ,
181+ [ SEMATTRS_DB_STATEMENT ] : `${ operation . command } ${ operation . expectedDbStatementOld } ` ,
167182 } ;
168183 const span = tracer . startSpan ( 'test span' ) ;
169184 context . with ( trace . setSpan ( context . active ( ) , span ) , ( ) => {
@@ -177,6 +192,7 @@ describe('redis v2-v3', () => {
177192 endedSpans [ 0 ] . name ,
178193 `redis-${ operation . command } `
179194 ) ;
195+
180196 testUtils . assertSpan (
181197 endedSpans [ 0 ] ,
182198 SpanKind . CLIENT ,
@@ -233,6 +249,11 @@ describe('redis v2-v3', () => {
233249 endedSpans [ 0 ] . attributes [ SEMATTRS_DB_STATEMENT ] ,
234250 expectedStatement
235251 ) ;
252+
253+ assert . strictEqual (
254+ endedSpans [ 0 ] . attributes [ ATTR_DB_QUERY_TEXT ] ,
255+ expectedStatement
256+ ) ;
236257 done ( ) ;
237258 } ) ;
238259 } ) ;
0 commit comments