|
13 | 13 | import static net.bytebuddy.matcher.ElementMatchers.takesArgument; |
14 | 14 |
|
15 | 15 | import com.amazonaws.services.lambda.runtime.Context; |
| 16 | +import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent; |
16 | 17 | import com.amazonaws.services.lambda.runtime.events.SQSEvent; |
17 | 18 | import io.opentelemetry.context.Scope; |
18 | 19 | import io.opentelemetry.instrumentation.awslambdacore.v1_0.AwsLambdaRequest; |
| 20 | +import io.opentelemetry.instrumentation.awslambdacore.v1_0.internal.MapUtils; |
19 | 21 | import io.opentelemetry.javaagent.bootstrap.OpenTelemetrySdkAccess; |
20 | 22 | import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; |
21 | 23 | import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; |
22 | 24 | import java.util.Collections; |
| 25 | +import java.util.Map; |
23 | 26 | import java.util.concurrent.TimeUnit; |
24 | 27 | import net.bytebuddy.asm.Advice; |
25 | 28 | import net.bytebuddy.description.type.TypeDescription; |
@@ -60,7 +63,11 @@ public static void onEnter( |
60 | 63 | @Advice.Local("otelFunctionScope") Scope functionScope, |
61 | 64 | @Advice.Local("otelMessageContext") io.opentelemetry.context.Context messageContext, |
62 | 65 | @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); |
64 | 71 | io.opentelemetry.context.Context parentContext = |
65 | 72 | AwsLambdaInstrumentationHelper.functionInstrumenter().extract(input); |
66 | 73 |
|
|
0 commit comments