Skip to content

Commit 4fd60f2

Browse files
committed
- extract `APIGatewayProxyRequestEvent` headers for context propagation
1 parent 5b94674 commit 4fd60f2

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

instrumentation/aws-lambda/aws-lambda-events-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/awslambdaevents/v2_2/AwsLambdaRequestHandlerInstrumentation.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,16 @@
1313
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
1414

1515
import com.amazonaws.services.lambda.runtime.Context;
16+
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent;
1617
import com.amazonaws.services.lambda.runtime.events.SQSEvent;
1718
import io.opentelemetry.context.Scope;
1819
import io.opentelemetry.instrumentation.awslambdacore.v1_0.AwsLambdaRequest;
20+
import io.opentelemetry.instrumentation.awslambdacore.v1_0.internal.MapUtils;
1921
import io.opentelemetry.javaagent.bootstrap.OpenTelemetrySdkAccess;
2022
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
2123
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
2224
import java.util.Collections;
25+
import java.util.Map;
2326
import java.util.concurrent.TimeUnit;
2427
import net.bytebuddy.asm.Advice;
2528
import net.bytebuddy.description.type.TypeDescription;
@@ -60,7 +63,11 @@ public static void onEnter(
6063
@Advice.Local("otelFunctionScope") Scope functionScope,
6164
@Advice.Local("otelMessageContext") io.opentelemetry.context.Context messageContext,
6265
@Advice.Local("otelMessageScope") Scope messageScope) {
63-
input = AwsLambdaRequest.create(context, arg, Collections.emptyMap());
66+
Map<String, String> headers = Collections.emptyMap();
67+
if (arg instanceof APIGatewayProxyRequestEvent) {
68+
headers = MapUtils.lowercaseMap(((APIGatewayProxyRequestEvent) arg).getHeaders());
69+
}
70+
input = AwsLambdaRequest.create(context, arg, headers);
6471
io.opentelemetry.context.Context parentContext =
6572
AwsLambdaInstrumentationHelper.functionInstrumenter().extract(input);
6673

0 commit comments

Comments
 (0)