@@ -51,12 +51,12 @@ func TestClientSpanWithAwsSdkClient(t *testing.T) {
5151 resource := constructDefaultResource ()
5252 span := constructClientSpan (parentSpanID , spanName , 0 , "OK" , attributes )
5353
54- segment := MakeSegment (span , resource )
54+ segment := MakeSegment (span , resource , nil , false )
5555 assert .Equal (t , "DynamoDB" , * segment .Name )
5656 assert .Equal (t , "aws" , * segment .Namespace )
5757 assert .Equal (t , "subsegment" , * segment .Type )
5858
59- jsonStr , err := MakeSegmentDocumentString (span , resource )
59+ jsonStr , err := MakeSegmentDocumentString (span , resource , nil , false )
6060
6161 assert .NotNil (t , jsonStr )
6262 assert .Nil (t , err )
@@ -82,7 +82,7 @@ func TestClientSpanWithPeerService(t *testing.T) {
8282 resource := constructDefaultResource ()
8383 span := constructClientSpan (parentSpanID , spanName , 0 , "OK" , attributes )
8484
85- segment := MakeSegment (span , resource )
85+ segment := MakeSegment (span , resource , nil , false )
8686 assert .Equal (t , "cats-table" , * segment .Name )
8787}
8888
@@ -106,7 +106,7 @@ func TestServerSpanWithInternalServerError(t *testing.T) {
106106 timeEvents := constructTimedEventsWithSentMessageEvent (span .StartTime ())
107107 timeEvents .CopyTo (span .Events ())
108108
109- segment := MakeSegment (span , resource )
109+ segment := MakeSegment (span , resource , nil , false )
110110
111111 assert .NotNil (t , segment )
112112 assert .NotNil (t , segment .Cause )
@@ -130,7 +130,7 @@ func TestServerSpanNoParentId(t *testing.T) {
130130 resource := constructDefaultResource ()
131131 span := constructServerSpan (parentSpanID , spanName , 0 , "OK" , nil )
132132
133- segment := MakeSegment (span , resource )
133+ segment := MakeSegment (span , resource , nil , false )
134134
135135 assert .Empty (t , segment .ParentID )
136136}
@@ -145,7 +145,7 @@ func TestSpanWithNoStatus(t *testing.T) {
145145 span .SetStartTime (pdata .TimestampUnixNano (time .Now ().UnixNano ()))
146146 span .SetEndTime (pdata .TimestampUnixNano (time .Now ().Add (10 ).UnixNano ()))
147147
148- segment := MakeSegment (span , pdata .NewResource ())
148+ segment := MakeSegment (span , pdata .NewResource (), nil , false )
149149 assert .NotNil (t , segment )
150150}
151151
@@ -165,13 +165,15 @@ func TestClientSpanWithDbComponent(t *testing.T) {
165165 resource := constructDefaultResource ()
166166 span := constructClientSpan (parentSpanID , spanName , 0 , "OK" , attributes )
167167
168- segment := MakeSegment (span , resource )
168+ segment := MakeSegment (span , resource , nil , false )
169169
170170 assert .NotNil (t , segment )
171171 assert .NotNil (t , segment .SQL )
172172 assert .NotNil (t , segment .Service )
173173 assert .NotNil (t , segment .AWS )
174- assert .NotNil (t , segment .Annotations )
174+ assert .NotNil (t , segment .Metadata )
175+ assert .Equal (t , 0 , len (segment .Annotations ))
176+ assert .Equal (t , enterpriseAppID , segment .Metadata ["default" ]["enterprise.app.id" ])
175177 assert .Nil (t , segment .Cause )
176178 assert .Nil (t , segment .HTTP )
177179 assert .
Equal (
t ,
"[email protected] " ,
* segment .
Name )
@@ -185,6 +187,7 @@ func TestClientSpanWithDbComponent(t *testing.T) {
185187 }
186188 jsonStr := w .String ()
187189 testWriters .release (w )
190+ fmt .Println (jsonStr )
188191 assert .True (t , strings .Contains (jsonStr , spanName ))
189192 assert .True (t , strings .Contains (jsonStr , enterpriseAppID ))
190193}
@@ -203,7 +206,7 @@ func TestClientSpanWithHttpHost(t *testing.T) {
203206 resource := constructDefaultResource ()
204207 span := constructClientSpan (parentSpanID , spanName , 0 , "OK" , attributes )
205208
206- segment := MakeSegment (span , resource )
209+ segment := MakeSegment (span , resource , nil , false )
207210
208211 assert .NotNil (t , segment )
209212 assert .Equal (t , "foo.com" , * segment .Name )
@@ -222,7 +225,7 @@ func TestClientSpanWithoutHttpHost(t *testing.T) {
222225 resource := constructDefaultResource ()
223226 span := constructClientSpan (parentSpanID , spanName , 0 , "OK" , attributes )
224227
225- segment := MakeSegment (span , resource )
228+ segment := MakeSegment (span , resource , nil , false )
226229
227230 assert .NotNil (t , segment )
228231 assert .Equal (t , "bar.com" , * segment .Name )
@@ -242,7 +245,7 @@ func TestClientSpanWithRpcHost(t *testing.T) {
242245 resource := constructDefaultResource ()
243246 span := constructClientSpan (parentSpanID , spanName , 0 , "OK" , attributes )
244247
245- segment := MakeSegment (span , resource )
248+ segment := MakeSegment (span , resource , nil , false )
246249
247250 assert .NotNil (t , segment )
248251 assert .Equal (t , "com.foo.AnimalService" , * segment .Name )
@@ -265,7 +268,7 @@ func TestSpanWithInvalidTraceId(t *testing.T) {
265268 traceID [0 ] = 0x11
266269 span .SetTraceID (traceID )
267270
268- jsonStr , err := MakeSegmentDocumentString (span , resource )
271+ jsonStr , err := MakeSegmentDocumentString (span , resource , nil , false )
269272
270273 assert .NotNil (t , jsonStr )
271274 assert .Nil (t , err )
@@ -324,14 +327,68 @@ func TestServerSpanWithNilAttributes(t *testing.T) {
324327 timeEvents .CopyTo (span .Events ())
325328 pdata .NewAttributeMap ().CopyTo (span .Attributes ())
326329
327- segment := MakeSegment (span , resource )
330+ segment := MakeSegment (span , resource , nil , false )
328331
329332 assert .NotNil (t , segment )
330333 assert .NotNil (t , segment .Cause )
331334 assert .Equal (t , "signup_aggregator" , * segment .Name )
332335 assert .True (t , * segment .Fault )
333336}
334337
338+ func TestSpanWithAttributesDefaultNotIndexed (t * testing.T ) {
339+ spanName := "/api/locations"
340+ parentSpanID := newSegmentID ()
341+ attributes := make (map [string ]interface {})
342+ attributes ["attr1@1" ] = "val1"
343+ attributes ["attr2@2" ] = "val2"
344+ resource := constructDefaultResource ()
345+ span := constructServerSpan (parentSpanID , spanName , tracetranslator .OCInternal , "OK" , attributes )
346+
347+ segment := MakeSegment (span , resource , nil , false )
348+
349+ assert .NotNil (t , segment )
350+ assert .Equal (t , 0 , len (segment .Annotations ))
351+ assert .Equal (t , 2 , len (segment .Metadata ["default" ]))
352+ assert .Equal (t , "val1" , segment .Metadata ["default" ]["attr1@1" ])
353+ assert .Equal (t , "val2" , segment .Metadata ["default" ]["attr2@2" ])
354+ }
355+
356+ func TestSpanWithAttributesPartlyIndexed (t * testing.T ) {
357+ spanName := "/api/locations"
358+ parentSpanID := newSegmentID ()
359+ attributes := make (map [string ]interface {})
360+ attributes ["attr1@1" ] = "val1"
361+ attributes ["attr2@2" ] = "val2"
362+ resource := constructDefaultResource ()
363+ span := constructServerSpan (parentSpanID , spanName , tracetranslator .OCInternal , "OK" , attributes )
364+
365+ segment := MakeSegment (span , resource , []string {"attr1@1" , "not_exist" }, false )
366+
367+ assert .NotNil (t , segment )
368+ assert .Equal (t , 1 , len (segment .Annotations ))
369+ assert .Equal (t , "val1" , segment .Annotations ["attr1_1" ])
370+ assert .Equal (t , 1 , len (segment .Metadata ["default" ]))
371+ assert .Equal (t , "val2" , segment .Metadata ["default" ]["attr2@2" ])
372+ }
373+
374+ func TestSpanWithAttributesAllIndexed (t * testing.T ) {
375+ spanName := "/api/locations"
376+ parentSpanID := newSegmentID ()
377+ attributes := make (map [string ]interface {})
378+ attributes ["attr1@1" ] = "val1"
379+ attributes ["attr2@2" ] = "val2"
380+ resource := constructDefaultResource ()
381+ span := constructServerSpan (parentSpanID , spanName , tracetranslator .OCInternal , "OK" , attributes )
382+
383+ segment := MakeSegment (span , resource , []string {"attr1@1" , "not_exist" }, true )
384+
385+ assert .NotNil (t , segment )
386+ assert .Equal (t , 2 , len (segment .Annotations ))
387+ assert .Equal (t , "val1" , segment .Annotations ["attr1_1" ])
388+ assert .Equal (t , "val2" , segment .Annotations ["attr2_2" ])
389+ assert .Equal (t , 0 , len (segment .Metadata ["default" ]))
390+ }
391+
335392func constructClientSpan (parentSpanID []byte , name string , code int32 , message string , attributes map [string ]interface {}) pdata.Span {
336393 var (
337394 traceID = newTraceID ()
0 commit comments