From 57c482a0463091e74da072b9b1248701e07254d3 Mon Sep 17 00:00:00 2001 From: Rithika Narayan Date: Mon, 29 Sep 2025 13:42:10 -0400 Subject: [PATCH 1/2] Implementation in tracing.py --- datadog_lambda/tracing.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/datadog_lambda/tracing.py b/datadog_lambda/tracing.py index 51157f6a7..4a2218bf9 100644 --- a/datadog_lambda/tracing.py +++ b/datadog_lambda/tracing.py @@ -209,6 +209,20 @@ def extract_context_from_http_event_or_context( return context +def extract_context_from_request_header_or_context(event, lambda_context, event_source): + request = event.get("request") + if isinstance(request, (set, dict)) and "headers" in request: + context = extract_context_from_http_event_or_context( + request, + lambda_context, + event_source, + decode_authorizer_context=False, + ) + else: + context = extract_context_from_lambda_context(lambda_context) + return context + + def create_sns_event(message): return { "Records": [ @@ -627,6 +641,10 @@ def extract_dd_trace_context( if extractor is not None: context = extract_context_custom_extractor(extractor, event, lambda_context) + elif isinstance(event, (set, dict)) and "request" in event: + context = extract_context_from_request_header_or_context( + event, lambda_context, event_source + ) elif isinstance(event, (set, dict)) and "headers" in event: context = extract_context_from_http_event_or_context( event, lambda_context, event_source, decode_authorizer_context From b234d06794579f74bb4fbd3691a6ae046232395a Mon Sep 17 00:00:00 2001 From: Rithika Narayan Date: Mon, 29 Sep 2025 13:50:21 -0400 Subject: [PATCH 2/2] Removing changes --- datadog_lambda/tracing.py | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/datadog_lambda/tracing.py b/datadog_lambda/tracing.py index 4a2218bf9..51157f6a7 100644 --- a/datadog_lambda/tracing.py +++ b/datadog_lambda/tracing.py @@ -209,20 +209,6 @@ def extract_context_from_http_event_or_context( return context -def extract_context_from_request_header_or_context(event, lambda_context, event_source): - request = event.get("request") - if isinstance(request, (set, dict)) and "headers" in request: - context = extract_context_from_http_event_or_context( - request, - lambda_context, - event_source, - decode_authorizer_context=False, - ) - else: - context = extract_context_from_lambda_context(lambda_context) - return context - - def create_sns_event(message): return { "Records": [ @@ -641,10 +627,6 @@ def extract_dd_trace_context( if extractor is not None: context = extract_context_custom_extractor(extractor, event, lambda_context) - elif isinstance(event, (set, dict)) and "request" in event: - context = extract_context_from_request_header_or_context( - event, lambda_context, event_source - ) elif isinstance(event, (set, dict)) and "headers" in event: context = extract_context_from_http_event_or_context( event, lambda_context, event_source, decode_authorizer_context