Skip to content

Commit a05623d

Browse files
author
Andrew Kent
committed
Remove Jackson from AWS Helper class
1 parent 8d2d9aa commit a05623d

1 file changed

Lines changed: 29 additions & 6 deletions

File tree

  • dd-java-agent/instrumentation/aws-sdk/src/main/java/datadog/trace/instrumentation/aws

dd-java-agent/instrumentation/aws-sdk/src/main/java/datadog/trace/instrumentation/aws/SpanDecorator.java

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,16 @@
1616
import com.amazonaws.AmazonWebServiceResponse;
1717
import com.amazonaws.Request;
1818
import com.amazonaws.Response;
19-
import com.fasterxml.jackson.core.JsonProcessingException;
20-
import com.fasterxml.jackson.databind.ObjectMapper;
2119
import io.opentracing.Span;
2220
import io.opentracing.tag.Tags;
2321
import java.io.PrintWriter;
2422
import java.io.StringWriter;
2523
import java.util.HashMap;
24+
import java.util.List;
2625
import java.util.Map;
26+
import java.util.Map.Entry;
2727

2828
class SpanDecorator {
29-
private static final ObjectMapper MAPPER = new ObjectMapper();
30-
3129
static final String COMPONENT_NAME = "java-aws-sdk";
3230

3331
static void onRequest(final Request request, final Span span) {
@@ -38,9 +36,34 @@ static void onRequest(final Request request, final Span span) {
3836
span.setTag("aws.service", request.getServiceName());
3937
span.setTag("aws.operation", request.getOriginalRequest().getClass().getSimpleName());
4038
span.setTag("aws.endpoint", request.getEndpoint().toString());
39+
4140
try {
42-
span.setTag("params", MAPPER.writeValueAsString(request.getParameters()));
43-
} catch (final JsonProcessingException e) {
41+
StringBuilder params = new StringBuilder("{");
42+
final Map<String, List<Object>> requestParams = request.getParameters();
43+
boolean firstKey = true;
44+
for (Entry<String, List<Object>> entry : requestParams.entrySet()) {
45+
if (!firstKey) {
46+
params.append(",");
47+
}
48+
params.append(entry.getKey()).append("=[");
49+
for (int i = 0; i < entry.getValue().size(); ++i) {
50+
if (i > 0) {
51+
params.append(",");
52+
}
53+
params.append(entry.getValue().get(i));
54+
}
55+
params.append("]");
56+
firstKey = false;
57+
}
58+
params.append("}");
59+
span.setTag("params", params.toString());
60+
} catch (Exception e) {
61+
try {
62+
org.slf4j.LoggerFactory.getLogger(SpanDecorator.class)
63+
.debug("Failed to decorate aws span", e);
64+
} catch (Exception e2) {
65+
// can't reach logger. Silently eat excetpion.
66+
}
4467
}
4568
}
4669

0 commit comments

Comments
 (0)