diff --git a/datadog_lambda/tracing.py b/datadog_lambda/tracing.py index d62cad37..4e875b76 100644 --- a/datadog_lambda/tracing.py +++ b/datadog_lambda/tracing.py @@ -234,7 +234,7 @@ def set_dd_trace_py_root(trace_context, merge_xray_traces): def create_function_execution_span( - context, function_name, is_cold_start, trace_context + context, function_name, is_cold_start, trace_context, merge_xray_traces ): tags = {} if context: @@ -246,7 +246,7 @@ def create_function_execution_span( "resource_names": context.function_name, } source = trace_context["source"] - if source != TraceContextSource.DDTRACE: + if source == TraceContextSource.XRAY and merge_xray_traces: tags["_dd.parent_source"] = source args = { diff --git a/datadog_lambda/wrapper.py b/datadog_lambda/wrapper.py index cd074ae4..7ddb4340 100644 --- a/datadog_lambda/wrapper.py +++ b/datadog_lambda/wrapper.py @@ -122,7 +122,11 @@ def _before(self, event, context): if dd_tracing_enabled: set_dd_trace_py_root(dd_context, self.merge_xray_traces) self.span = create_function_execution_span( - context, self.function_name, is_cold_start(), dd_context + context, + self.function_name, + is_cold_start(), + dd_context, + self.merge_xray_traces, ) else: set_correlation_ids()