1
1
import datadog.trace.agent.test.AgentTestRunner
2
2
import datadog.trace.api.DDSpanTypes
3
+ import datadog.trace.api.DDTraceId
4
+ import datadog.trace.bootstrap.instrumentation.api.SpanAttributes
5
+ import datadog.trace.bootstrap.instrumentation.api.SpanLink
3
6
import datadog.trace.core.tagprocessor.SpanPointersProcessor
4
- import groovy.json.JsonSlurper
5
7
import org.testcontainers.containers.GenericContainer
6
8
import org.testcontainers.utility.DockerImageName
7
9
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials
@@ -70,6 +72,14 @@ class S3ClientTest extends AgentTestRunner {
70
72
operationName " aws.http"
71
73
resourceName " S3.PutObject"
72
74
spanType DDSpanTypes . HTTP_CLIENT
75
+ links {
76
+ link(DDTraceId . ZERO , (long )0 , SpanLink . DEFAULT_FLAGS ,
77
+ SpanAttributes . builder()
78
+ .put(" ptr.kind" , SpanPointersProcessor . S3_PTR_KIND )
79
+ .put(" ptr.dir" , SpanPointersProcessor . DOWN_DIRECTION )
80
+ .put(" ptr.hash" ," 6d1a2fe194c6579187408f827f942be3" )
81
+ .put(" link.kind" ,SpanPointersProcessor . LINK_KIND ). build())
82
+ }
73
83
tags {
74
84
defaultTags()
75
85
tag " component" , " java-aws-sdk"
@@ -87,19 +97,6 @@ class S3ClientTest extends AgentTestRunner {
87
97
tag " peer.port" , { it instanceof Integer }
88
98
tag " span.kind" , " client"
89
99
tag " aws.requestId" , { it != null }
90
- tag " _dd.span_links" , { it != null }
91
-
92
- // Assert the span links
93
- def spanLinks = tags[" _dd.span_links" ]
94
- assert spanLinks != null
95
- def links = new JsonSlurper (). parseText(spanLinks)
96
- assert links. size() == 1
97
- def link = links[0 ]
98
- assert link[" attributes" ] != null
99
- assert link[" attributes" ][" ptr.kind" ] == SpanPointersProcessor . S3_PTR_KIND
100
- assert link[" attributes" ][" ptr.dir" ] == SpanPointersProcessor . DOWN_DIRECTION
101
- assert link[" attributes" ][" ptr.hash" ] == " 6d1a2fe194c6579187408f827f942be3"
102
- assert link[" attributes" ][" link.kind" ] == SpanPointersProcessor . LINK_KIND
103
100
}
104
101
}
105
102
}
@@ -134,6 +131,14 @@ class S3ClientTest extends AgentTestRunner {
134
131
operationName " aws.http"
135
132
resourceName " S3.PutObject"
136
133
spanType DDSpanTypes . HTTP_CLIENT
134
+ links {
135
+ link(DDTraceId . ZERO , (long )0 , SpanLink . DEFAULT_FLAGS ,
136
+ SpanAttributes . builder()
137
+ .put(" ptr.kind" , SpanPointersProcessor . S3_PTR_KIND )
138
+ .put(" ptr.dir" , SpanPointersProcessor . DOWN_DIRECTION )
139
+ .put(" ptr.hash" ," 6d1a2fe194c6579187408f827f942be3" )
140
+ .put(" link.kind" ,SpanPointersProcessor . LINK_KIND ). build())
141
+ }
137
142
tags {
138
143
defaultTags()
139
144
tag " component" , " java-aws-sdk"
@@ -151,7 +156,6 @@ class S3ClientTest extends AgentTestRunner {
151
156
tag " peer.port" , { it instanceof Integer }
152
157
tag " span.kind" , " client"
153
158
tag " aws.requestId" , { it != null }
154
- tag " _dd.span_links" , { it != null }
155
159
}
156
160
}
157
161
}
@@ -161,6 +165,14 @@ class S3ClientTest extends AgentTestRunner {
161
165
operationName " aws.http"
162
166
resourceName " S3.CopyObject"
163
167
spanType DDSpanTypes . HTTP_CLIENT
168
+ links {
169
+ link(DDTraceId . ZERO , (long )0 , SpanLink . DEFAULT_FLAGS ,
170
+ SpanAttributes . builder()
171
+ .put(" ptr.kind" , SpanPointersProcessor . S3_PTR_KIND )
172
+ .put(" ptr.dir" , SpanPointersProcessor . DOWN_DIRECTION )
173
+ .put(" ptr.hash" ," 1542053ce6d393c424b1374bac1fc0c5" )
174
+ .put(" link.kind" ,SpanPointersProcessor . LINK_KIND ). build())
175
+ }
164
176
tags {
165
177
defaultTags()
166
178
tag " component" , " java-aws-sdk"
@@ -178,19 +190,6 @@ class S3ClientTest extends AgentTestRunner {
178
190
tag " peer.port" , { it instanceof Integer }
179
191
tag " span.kind" , " client"
180
192
tag " aws.requestId" , { it != null }
181
- tag " _dd.span_links" , { it != null }
182
-
183
- // Assert the span links
184
- def spanLinks = tags[" _dd.span_links" ]
185
- assert spanLinks != null
186
- def links = new JsonSlurper (). parseText(spanLinks)
187
- assert links. size() == 1
188
- def link = links[0 ]
189
- assert link[" attributes" ] != null
190
- assert link[" attributes" ][" ptr.kind" ] == SpanPointersProcessor . S3_PTR_KIND
191
- assert link[" attributes" ][" ptr.dir" ] == SpanPointersProcessor . DOWN_DIRECTION
192
- assert link[" attributes" ][" ptr.hash" ] == " 1542053ce6d393c424b1374bac1fc0c5"
193
- assert link[" attributes" ][" link.kind" ] == SpanPointersProcessor . LINK_KIND
194
193
}
195
194
}
196
195
}
@@ -346,6 +345,14 @@ class S3ClientTest extends AgentTestRunner {
346
345
operationName " aws.http"
347
346
resourceName " S3.CompleteMultipartUpload"
348
347
spanType DDSpanTypes . HTTP_CLIENT
348
+ links {
349
+ link(DDTraceId . ZERO , (long )0 , SpanLink . DEFAULT_FLAGS ,
350
+ SpanAttributes . builder()
351
+ .put(" ptr.kind" , SpanPointersProcessor . S3_PTR_KIND )
352
+ .put(" ptr.dir" , SpanPointersProcessor . DOWN_DIRECTION )
353
+ .put(" ptr.hash" ," 422412aa6b472a7194f3e24f4b12b4a6" )
354
+ .put(" link.kind" ,SpanPointersProcessor . LINK_KIND ). build())
355
+ }
349
356
tags {
350
357
defaultTags()
351
358
tag " component" , " java-aws-sdk"
@@ -364,19 +371,6 @@ class S3ClientTest extends AgentTestRunner {
364
371
tag " span.kind" , " client"
365
372
tag " aws.requestId" , { it != null }
366
373
tag " http.query.string" , { it != null }
367
- tag " _dd.span_links" , { it != null }
368
-
369
- // Assert the span links
370
- def spanLinks = tags[" _dd.span_links" ]
371
- assert spanLinks != null
372
- def links = new JsonSlurper (). parseText(spanLinks)
373
- assert links. size() == 1
374
- def link = links[0 ]
375
- assert link[" attributes" ] != null
376
- assert link[" attributes" ][" ptr.kind" ] == SpanPointersProcessor . S3_PTR_KIND
377
- assert link[" attributes" ][" ptr.dir" ] == SpanPointersProcessor . DOWN_DIRECTION
378
- assert link[" attributes" ][" ptr.hash" ] == " 422412aa6b472a7194f3e24f4b12b4a6"
379
- assert link[" attributes" ][" link.kind" ] == SpanPointersProcessor . LINK_KIND
380
374
}
381
375
}
382
376
}
0 commit comments