Skip to content

Commit 99608c4

Browse files
committed
Do not collect null values from AWS SdkPojos
1 parent 2b4a735 commit 99608c4

2 files changed

Lines changed: 18 additions & 23 deletions

File tree

dd-java-agent/instrumentation/aws-java-sdk-2.2/src/main/java/datadog/trace/instrumentation/aws/v2/AwsSdkClientDecorator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -495,7 +495,7 @@ private void collectPayloadTagsData(
495495
} else if (object instanceof SdkBytes) {
496496
SdkBytes bytes = (SdkBytes) object;
497497
payloadTagsData.add(new PayloadTagsData.PathAndValue(path.toArray(), bytes.asInputStream()));
498-
} else {
498+
} else if (object != null) {
499499
payloadTagsData.add(new PayloadTagsData.PathAndValue(path.toArray(), object));
500500
}
501501
}

dd-java-agent/instrumentation/aws-java-sdk-2.2/src/payloadTaggingTest/groovy/PayloadTaggingTest.groovy

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,8 @@ class PayloadTaggingRedactionForkedTest extends AbstractPayloadTaggingTest {
114114
@Override
115115
protected void configurePreAgent() {
116116
super.configurePreAgent()
117-
def redactTopLevelTags = "\$.*,\$.Owner.DisplayName"
118-
injectSysConfig(TracerConfig.TRACE_CLOUD_REQUEST_PAYLOAD_TAGGING, redactTopLevelTags)
119-
injectSysConfig(TracerConfig.TRACE_CLOUD_RESPONSE_PAYLOAD_TAGGING, redactTopLevelTags)
117+
injectSysConfig(TracerConfig.TRACE_CLOUD_REQUEST_PAYLOAD_TAGGING, "all")
118+
injectSysConfig(TracerConfig.TRACE_CLOUD_RESPONSE_PAYLOAD_TAGGING, "\$.*,\$.Owner.DisplayName")
120119
}
121120

122121
def "test payload tag observability support for #service"() {
@@ -133,45 +132,46 @@ class PayloadTaggingRedactionForkedTest extends AbstractPayloadTaggingTest {
133132
span {
134133
spanType DDSpanTypes.HTTP_CLIENT
135134
childOf(span(0))
136-
assert expectedReqTag == NA || span.tags.get("aws.request.body." + expectedReqTag) == "redacted"
135+
assert expectedReqTag == NA || span.tags.get("aws.request.body." + expectedReqTag) == "tagvalue"
137136
assert expectedRespTag == NA || span.tags.get("aws.response.body." + expectedRespTag) == "redacted"
138137

139138
assert !span.tags.containsKey("_dd.payload_tags_incomplete")
140139
assert !span.tags.containsKey("aws.request.body")
141140
assert !span.tags.containsKey("aws.response.body")
141+
assert !span.tags.containsValue(null)
142142
}
143143
}
144144
}
145145

146146
where:
147-
service | expectedReqTag | expectedRespTag | apiCall
148-
"ApiGateway" | "name" | "value" | {
147+
service | expectedReqTag | expectedRespTag | apiCall
148+
"ApiGateway" | "name" | "value" | {
149149
apiGatewayClient.createApiKey {
150-
it.name("testapi")
150+
it.name("tagvalue")
151151
}
152152
}
153-
"EventBridge" | "Name" | "EventBusArn" | {
153+
"EventBridge" | "Name" | "EventBusArn" | {
154154
eventBridgeClient.createEventBus {
155-
it.name("testbus")
155+
it.name("tagvalue")
156156
}
157157
}
158-
"Sns" | "Name" | "TopicArn" | {
158+
"Sns" | "Name" | "TopicArn" | {
159159
snsClient.createTopic {
160-
it.name("testtopic")
160+
it.name("tagvalue")
161161
}
162162
}
163-
"Sqs" | "QueueName" | "QueueUrl" | {
163+
"Sqs" | "QueueName" | "QueueUrl" | {
164164
sqsClient.createQueue {
165-
it.queueName("testqueue")
165+
it.queueName("tagvalue")
166166
}
167167
}
168-
"Kinesis" | "StreamModeDetails" | NA | {
168+
"Kinesis" | "StreamName" | NA | {
169169
kinesisClient.createStream {
170-
it.streamName("teststream")
170+
it.streamName("tagvalue")
171171
}
172172
}
173-
"Kinesis" | NA | "ShardLimit" | { kinesisClient.describeLimits() }
174-
"S3" | NA | "Owner.DisplayName" | { s3Client.listBuckets() }
173+
"Kinesis" | NA | "ShardLimit" | { kinesisClient.describeLimits() }
174+
"S3" | NA | "Owner.DisplayName" | { s3Client.listBuckets() }
175175
}
176176
}
177177

@@ -346,11 +346,6 @@ class PayloadTaggingMaxTagsForkedTest extends AbstractPayloadTaggingTest {
346346

347347
where:
348348
apiCall << [
349-
{
350-
snsClient.publish {
351-
it.phoneNumber("+15555555555").message('message')
352-
}
353-
},
354349
{
355350
snsClient.createTopic {
356351
it.name("testtopic")

0 commit comments

Comments
 (0)