Skip to content

Commit 205dd2b

Browse files
committed
use regular propagator.extract
1 parent 806de56 commit 205dd2b

1 file changed

Lines changed: 8 additions & 4 deletions

File tree

datadog_lambda/tracing.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131

3232
from ddtrace import patch
3333
from ddtrace import __version__ as ddtrace_version
34-
from ddtrace.propagation.http import HTTPPropagator, _DatadogMultiHeader
34+
from ddtrace.propagation.http import HTTPPropagator
3535
from ddtrace.trace import Context, Span, tracer
3636

3737
from datadog_lambda.config import config
@@ -548,6 +548,12 @@ def extract_context_from_step_functions(event, lambda_context):
548548

549549

550550
def _extract_context_from_durable_checkpoint(operation):
551+
# Checkpoint data is written by the dd-trace-py in Datadog style
552+
# (x-datadog-* headers). Extraction goes through the standard
553+
# propagator.extract path, which honors DD_TRACE_PROPAGATION_STYLE_EXTRACT.
554+
# The default extract list (datadog, tracecontext, baggage) already
555+
# includes datadog. Customers who override the extract list MUST keep
556+
# datadog in it.
551557
if not isinstance(operation, dict):
552558
return None
553559

@@ -565,9 +571,7 @@ def _extract_context_from_durable_checkpoint(operation):
565571
if not isinstance(result, dict):
566572
return None
567573

568-
# Checkpoints are written by dd-trace-py as x-datadog-* headers, so extract
569-
# directly and bypass DD_TRACE_PROPAGATION_STYLE_EXTRACT on purpose.
570-
return _DatadogMultiHeader._extract(result)
574+
return propagator.extract(result)
571575

572576

573577
def extract_context_from_durable_execution(event):

0 commit comments

Comments
 (0)