diff --git a/dd-trace-core/src/main/java/datadog/trace/lambda/LambdaHandler.java b/dd-trace-core/src/main/java/datadog/trace/lambda/LambdaHandler.java index c5f47f6554e..7e693ed82c8 100644 --- a/dd-trace-core/src/main/java/datadog/trace/lambda/LambdaHandler.java +++ b/dd-trace-core/src/main/java/datadog/trace/lambda/LambdaHandler.java @@ -9,6 +9,7 @@ import datadog.trace.api.DDTags; import datadog.trace.bootstrap.instrumentation.api.AgentSpan; import datadog.trace.bootstrap.instrumentation.api.AgentSpanContext; +import datadog.trace.util.Strings; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.nio.charset.StandardCharsets; @@ -120,22 +121,17 @@ public static boolean notifyEndInvocation( .addHeader(LAMBDA_RUNTIME_AWS_REQUEST_ID, lambdaRequestId) .post(body); - Object errorMessage = span.getTag(DDTags.ERROR_MSG); - if (errorMessage != null) { - builder.addHeader(DATADOG_INVOCATION_ERROR_MSG, errorMessage.toString()); - } - - Object errorType = span.getTag(DDTags.ERROR_TYPE); - if (errorType != null) { - builder.addHeader(DATADOG_INVOCATION_ERROR_TYPE, errorType.toString()); - } + addHeaderIfValid(builder, DATADOG_INVOCATION_ERROR_MSG, span.getTag(DDTags.ERROR_MSG)); + addHeaderIfValid(builder, DATADOG_INVOCATION_ERROR_TYPE, span.getTag(DDTags.ERROR_TYPE)); Object errorStack = span.getTag(DDTags.ERROR_STACK); if (errorStack != null) { String encodedErrStack = Base64.getEncoder() .encodeToString(errorStack.toString().getBytes(StandardCharsets.UTF_8)); - builder.addHeader(DATADOG_INVOCATION_ERROR_STACK, encodedErrStack); + if (Strings.isNotBlank(encodedErrStack)) { + builder.addHeader(DATADOG_INVOCATION_ERROR_STACK, encodedErrStack); + } } if (isError) { @@ -165,6 +161,15 @@ public static String writeValueAsString(Object obj) { return json; } + private static void addHeaderIfValid(Request.Builder builder, String name, Object value) { + if (value != null) { + final String stringValue = value.toString(); + if (Strings.isNotBlank(stringValue)) { + builder.addHeader(name, stringValue); + } + } + } + public static void setExtensionBaseUrl(String extensionBaseUrl) { EXTENSION_BASE_URL = extensionBaseUrl; }