Skip to content

Commit 7893e9b

Browse files
authored
Move span pointer to inferred (root) span (#552)
1 parent 02c2086 commit 7893e9b

13 files changed

+544
-543
lines changed

Diff for: datadog_lambda/tracing.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1368,8 +1368,9 @@ def create_function_execution_span(
13681368
if parent_span:
13691369
span.parent_id = parent_span.span_id
13701370
if span_pointers:
1371+
root_span = parent_span if parent_span else span
13711372
for span_pointer_description in span_pointers:
1372-
span._add_span_pointer(
1373+
root_span._add_span_pointer(
13731374
pointer_kind=span_pointer_description.pointer_kind,
13741375
pointer_direction=span_pointer_description.pointer_direction,
13751376
pointer_hash=span_pointer_description.pointer_hash,

Diff for: tests/integration/snapshots/logs/async-metrics_python310.log

+45-45
Original file line numberDiff line numberDiff line change
@@ -249,37 +249,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
249249
"_dd.top_level": 1,
250250
"_sampling_priority_v1": 1
251251
},
252-
"type": "web"
253-
},
254-
{
255-
"trace_id": "XXXX",
256-
"parent_id": "XXXX",
257-
"span_id": "XXXX",
258-
"service": "aws.lambda",
259-
"resource": "integration-tests-python-XXXX-async-metrics_python310",
260-
"name": "aws.lambda",
261-
"error": 0,
262-
"start": "XXXX",
263-
"duration": "XXXX",
264-
"meta": {
265-
"_dd.origin": "lambda",
266-
"cold_start": "false",
267-
"function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310",
268-
"function_version": "$LATEST",
269-
"request_id": "XXXX",
270-
"resource_names": "integration-tests-python-XXXX-async-metrics_python310",
271-
"functionname": "integration-tests-python-XXXX-async-metrics_python310",
272-
"datadog_lambda": "X.X.X",
273-
"dd_trace": "X.X.X",
274-
"span.name": "aws.lambda",
275-
"function_trigger.event_source": "dynamodb",
276-
"function_trigger.event_source_arn": "XXXX",
277-
"_dd.base_service": "integration-tests-python"
278-
},
279-
"metrics": {
280-
"_dd.top_level": 1
281-
},
282-
"type": "serverless",
252+
"type": "web",
283253
"span_links": [
284254
{
285255
"trace_id": "XXXX",
@@ -313,6 +283,36 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
313283
}
314284
]
315285
},
286+
{
287+
"trace_id": "XXXX",
288+
"parent_id": "XXXX",
289+
"span_id": "XXXX",
290+
"service": "aws.lambda",
291+
"resource": "integration-tests-python-XXXX-async-metrics_python310",
292+
"name": "aws.lambda",
293+
"error": 0,
294+
"start": "XXXX",
295+
"duration": "XXXX",
296+
"meta": {
297+
"_dd.origin": "lambda",
298+
"cold_start": "false",
299+
"function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python310",
300+
"function_version": "$LATEST",
301+
"request_id": "XXXX",
302+
"resource_names": "integration-tests-python-XXXX-async-metrics_python310",
303+
"functionname": "integration-tests-python-XXXX-async-metrics_python310",
304+
"datadog_lambda": "X.X.X",
305+
"dd_trace": "X.X.X",
306+
"span.name": "aws.lambda",
307+
"function_trigger.event_source": "dynamodb",
308+
"function_trigger.event_source_arn": "XXXX",
309+
"_dd.base_service": "integration-tests-python"
310+
},
311+
"metrics": {
312+
"_dd.top_level": 1
313+
},
314+
"type": "serverless"
315+
},
316316
{
317317
"trace_id": "XXXX",
318318
"parent_id": "XXXX",
@@ -944,7 +944,19 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
944944
"_dd.top_level": 1,
945945
"_sampling_priority_v1": 1
946946
},
947-
"type": "web"
947+
"type": "web",
948+
"span_links": [
949+
{
950+
"trace_id": "XXXX",
951+
"span_id": "XXXX",
952+
"attributes": {
953+
"ptr.kind": "aws.s3.object",
954+
"ptr.dir": "u",
955+
"ptr.hash": "1dc3e5d00dae48c1f07d95371a747788",
956+
"link.kind": "span-pointer"
957+
}
958+
}
959+
]
948960
},
949961
{
950962
"trace_id": "XXXX",
@@ -974,19 +986,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
974986
"metrics": {
975987
"_dd.top_level": 1
976988
},
977-
"type": "serverless",
978-
"span_links": [
979-
{
980-
"trace_id": "XXXX",
981-
"span_id": "XXXX",
982-
"attributes": {
983-
"ptr.kind": "aws.s3.object",
984-
"ptr.dir": "u",
985-
"ptr.hash": "1dc3e5d00dae48c1f07d95371a747788",
986-
"link.kind": "span-pointer"
987-
}
988-
}
989-
]
989+
"type": "serverless"
990990
},
991991
{
992992
"trace_id": "XXXX",

Diff for: tests/integration/snapshots/logs/async-metrics_python311.log

+45-45
Original file line numberDiff line numberDiff line change
@@ -249,37 +249,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
249249
"_dd.top_level": 1,
250250
"_sampling_priority_v1": 1
251251
},
252-
"type": "web"
253-
},
254-
{
255-
"trace_id": "XXXX",
256-
"parent_id": "XXXX",
257-
"span_id": "XXXX",
258-
"service": "aws.lambda",
259-
"resource": "integration-tests-python-XXXX-async-metrics_python311",
260-
"name": "aws.lambda",
261-
"error": 0,
262-
"start": "XXXX",
263-
"duration": "XXXX",
264-
"meta": {
265-
"_dd.origin": "lambda",
266-
"cold_start": "false",
267-
"function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311",
268-
"function_version": "$LATEST",
269-
"request_id": "XXXX",
270-
"resource_names": "integration-tests-python-XXXX-async-metrics_python311",
271-
"functionname": "integration-tests-python-XXXX-async-metrics_python311",
272-
"datadog_lambda": "X.X.X",
273-
"dd_trace": "X.X.X",
274-
"span.name": "aws.lambda",
275-
"function_trigger.event_source": "dynamodb",
276-
"function_trigger.event_source_arn": "XXXX",
277-
"_dd.base_service": "integration-tests-python"
278-
},
279-
"metrics": {
280-
"_dd.top_level": 1
281-
},
282-
"type": "serverless",
252+
"type": "web",
283253
"span_links": [
284254
{
285255
"trace_id": "XXXX",
@@ -313,6 +283,36 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
313283
}
314284
]
315285
},
286+
{
287+
"trace_id": "XXXX",
288+
"parent_id": "XXXX",
289+
"span_id": "XXXX",
290+
"service": "aws.lambda",
291+
"resource": "integration-tests-python-XXXX-async-metrics_python311",
292+
"name": "aws.lambda",
293+
"error": 0,
294+
"start": "XXXX",
295+
"duration": "XXXX",
296+
"meta": {
297+
"_dd.origin": "lambda",
298+
"cold_start": "false",
299+
"function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python311",
300+
"function_version": "$LATEST",
301+
"request_id": "XXXX",
302+
"resource_names": "integration-tests-python-XXXX-async-metrics_python311",
303+
"functionname": "integration-tests-python-XXXX-async-metrics_python311",
304+
"datadog_lambda": "X.X.X",
305+
"dd_trace": "X.X.X",
306+
"span.name": "aws.lambda",
307+
"function_trigger.event_source": "dynamodb",
308+
"function_trigger.event_source_arn": "XXXX",
309+
"_dd.base_service": "integration-tests-python"
310+
},
311+
"metrics": {
312+
"_dd.top_level": 1
313+
},
314+
"type": "serverless"
315+
},
316316
{
317317
"trace_id": "XXXX",
318318
"parent_id": "XXXX",
@@ -944,7 +944,19 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
944944
"_dd.top_level": 1,
945945
"_sampling_priority_v1": 1
946946
},
947-
"type": "web"
947+
"type": "web",
948+
"span_links": [
949+
{
950+
"trace_id": "XXXX",
951+
"span_id": "XXXX",
952+
"attributes": {
953+
"ptr.kind": "aws.s3.object",
954+
"ptr.dir": "u",
955+
"ptr.hash": "1dc3e5d00dae48c1f07d95371a747788",
956+
"link.kind": "span-pointer"
957+
}
958+
}
959+
]
948960
},
949961
{
950962
"trace_id": "XXXX",
@@ -974,19 +986,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
974986
"metrics": {
975987
"_dd.top_level": 1
976988
},
977-
"type": "serverless",
978-
"span_links": [
979-
{
980-
"trace_id": "XXXX",
981-
"span_id": "XXXX",
982-
"attributes": {
983-
"ptr.kind": "aws.s3.object",
984-
"ptr.dir": "u",
985-
"ptr.hash": "1dc3e5d00dae48c1f07d95371a747788",
986-
"link.kind": "span-pointer"
987-
}
988-
}
989-
]
989+
"type": "serverless"
990990
},
991991
{
992992
"trace_id": "XXXX",

Diff for: tests/integration/snapshots/logs/async-metrics_python312.log

+45-45
Original file line numberDiff line numberDiff line change
@@ -249,37 +249,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
249249
"_dd.top_level": 1,
250250
"_sampling_priority_v1": 1
251251
},
252-
"type": "web"
253-
},
254-
{
255-
"trace_id": "XXXX",
256-
"parent_id": "XXXX",
257-
"span_id": "XXXX",
258-
"service": "aws.lambda",
259-
"resource": "integration-tests-python-XXXX-async-metrics_python312",
260-
"name": "aws.lambda",
261-
"error": 0,
262-
"start": "XXXX",
263-
"duration": "XXXX",
264-
"meta": {
265-
"_dd.origin": "lambda",
266-
"cold_start": "false",
267-
"function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312",
268-
"function_version": "$LATEST",
269-
"request_id": "XXXX",
270-
"resource_names": "integration-tests-python-XXXX-async-metrics_python312",
271-
"functionname": "integration-tests-python-XXXX-async-metrics_python312",
272-
"datadog_lambda": "X.X.X",
273-
"dd_trace": "X.X.X",
274-
"span.name": "aws.lambda",
275-
"function_trigger.event_source": "dynamodb",
276-
"function_trigger.event_source_arn": "XXXX",
277-
"_dd.base_service": "integration-tests-python"
278-
},
279-
"metrics": {
280-
"_dd.top_level": 1
281-
},
282-
"type": "serverless",
252+
"type": "web",
283253
"span_links": [
284254
{
285255
"trace_id": "XXXX",
@@ -313,6 +283,36 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
313283
}
314284
]
315285
},
286+
{
287+
"trace_id": "XXXX",
288+
"parent_id": "XXXX",
289+
"span_id": "XXXX",
290+
"service": "aws.lambda",
291+
"resource": "integration-tests-python-XXXX-async-metrics_python312",
292+
"name": "aws.lambda",
293+
"error": 0,
294+
"start": "XXXX",
295+
"duration": "XXXX",
296+
"meta": {
297+
"_dd.origin": "lambda",
298+
"cold_start": "false",
299+
"function_arn": "arn:aws:lambda:eu-west-1:XXXX:eu-west-1-tests-python-XXXX-async-metrics_python312",
300+
"function_version": "$LATEST",
301+
"request_id": "XXXX",
302+
"resource_names": "integration-tests-python-XXXX-async-metrics_python312",
303+
"functionname": "integration-tests-python-XXXX-async-metrics_python312",
304+
"datadog_lambda": "X.X.X",
305+
"dd_trace": "X.X.X",
306+
"span.name": "aws.lambda",
307+
"function_trigger.event_source": "dynamodb",
308+
"function_trigger.event_source_arn": "XXXX",
309+
"_dd.base_service": "integration-tests-python"
310+
},
311+
"metrics": {
312+
"_dd.top_level": 1
313+
},
314+
"type": "serverless"
315+
},
316316
{
317317
"trace_id": "XXXX",
318318
"parent_id": "XXXX",
@@ -944,7 +944,19 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
944944
"_dd.top_level": 1,
945945
"_sampling_priority_v1": 1
946946
},
947-
"type": "web"
947+
"type": "web",
948+
"span_links": [
949+
{
950+
"trace_id": "XXXX",
951+
"span_id": "XXXX",
952+
"attributes": {
953+
"ptr.kind": "aws.s3.object",
954+
"ptr.dir": "u",
955+
"ptr.hash": "1dc3e5d00dae48c1f07d95371a747788",
956+
"link.kind": "span-pointer"
957+
}
958+
}
959+
]
948960
},
949961
{
950962
"trace_id": "XXXX",
@@ -974,19 +986,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
974986
"metrics": {
975987
"_dd.top_level": 1
976988
},
977-
"type": "serverless",
978-
"span_links": [
979-
{
980-
"trace_id": "XXXX",
981-
"span_id": "XXXX",
982-
"attributes": {
983-
"ptr.kind": "aws.s3.object",
984-
"ptr.dir": "u",
985-
"ptr.hash": "1dc3e5d00dae48c1f07d95371a747788",
986-
"link.kind": "span-pointer"
987-
}
988-
}
989-
]
989+
"type": "serverless"
990990
},
991991
{
992992
"trace_id": "XXXX",

0 commit comments

Comments
 (0)