Skip to content

Commit 8fe789e

Browse files
jchrostek-ddclaude
andauthored
Add span.kind=server to aws.lambda spans (#745)
* Add span.kind=server to aws.lambda span This aligns the tracer-created span with the extension's behavior, enabling server-based features in Datadog APM for Lambda functions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * Update integration test snapshots with span.kind: server Add span.kind: server to all aws.lambda spans in integration test snapshot files to match the new behavior added in tracing.py. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
1 parent f349c57 commit 8fe789e

15 files changed

+99
-0
lines changed

datadog_lambda/tracing.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1460,6 +1460,7 @@ def create_function_execution_span(
14601460
function_arn = ":".join(tk[0:7]) if len(tk) > 7 else function_arn
14611461
function_version = tk[7] if len(tk) > 7 else "$LATEST"
14621462
tags = {
1463+
"span.kind": "server",
14631464
"cold_start": str(is_cold_start).lower(),
14641465
"function_arn": function_arn,
14651466
"function_version": function_version,

tests/integration/snapshots/logs/async-metrics_python310.log

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
237237
"datadog_lambda": "X.X.X",
238238
"dd_trace": "X.X.X",
239239
"span.name": "aws.lambda",
240+
"span.kind": "server",
240241
"language": "python"
241242
},
242243
"metrics": {
@@ -445,6 +446,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
445446
"datadog_lambda": "X.X.X",
446447
"dd_trace": "X.X.X",
447448
"span.name": "aws.lambda",
449+
"span.kind": "server",
448450
"function_trigger.event_source": "dynamodb",
449451
"function_trigger.event_source_arn": "XXXX"
450452
},
@@ -605,6 +607,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
605607
"datadog_lambda": "X.X.X",
606608
"dd_trace": "X.X.X",
607609
"span.name": "aws.lambda",
610+
"span.kind": "server",
608611
"function_trigger.event_source": "eventbridge"
609612
},
610613
"metrics": {
@@ -946,6 +949,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
946949
"datadog_lambda": "X.X.X",
947950
"dd_trace": "X.X.X",
948951
"span.name": "aws.lambda",
952+
"span.kind": "server",
949953
"function_trigger.event_source": "kinesis",
950954
"function_trigger.event_source_arn": "XXXX"
951955
},
@@ -1122,6 +1126,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
11221126
"datadog_lambda": "X.X.X",
11231127
"dd_trace": "X.X.X",
11241128
"span.name": "aws.lambda",
1129+
"span.kind": "server",
11251130
"function_trigger.event_source": "s3",
11261131
"function_trigger.event_source_arn": "XXXX"
11271132
},
@@ -1287,6 +1292,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
12871292
"datadog_lambda": "X.X.X",
12881293
"dd_trace": "X.X.X",
12891294
"span.name": "aws.lambda",
1295+
"span.kind": "server",
12901296
"function_trigger.event_source": "sns",
12911297
"function_trigger.event_source_arn": "XXXX"
12921298
},
@@ -1451,6 +1457,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
14511457
"datadog_lambda": "X.X.X",
14521458
"dd_trace": "X.X.X",
14531459
"span.name": "aws.lambda",
1460+
"span.kind": "server",
14541461
"function_trigger.event_source": "sqs",
14551462
"function_trigger.event_source_arn": "XXXX"
14561463
},

tests/integration/snapshots/logs/async-metrics_python311.log

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
237237
"datadog_lambda": "X.X.X",
238238
"dd_trace": "X.X.X",
239239
"span.name": "aws.lambda",
240+
"span.kind": "server",
240241
"language": "python"
241242
},
242243
"metrics": {
@@ -445,6 +446,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
445446
"datadog_lambda": "X.X.X",
446447
"dd_trace": "X.X.X",
447448
"span.name": "aws.lambda",
449+
"span.kind": "server",
448450
"function_trigger.event_source": "dynamodb",
449451
"function_trigger.event_source_arn": "XXXX"
450452
},
@@ -605,6 +607,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
605607
"datadog_lambda": "X.X.X",
606608
"dd_trace": "X.X.X",
607609
"span.name": "aws.lambda",
610+
"span.kind": "server",
608611
"function_trigger.event_source": "eventbridge"
609612
},
610613
"metrics": {
@@ -946,6 +949,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
946949
"datadog_lambda": "X.X.X",
947950
"dd_trace": "X.X.X",
948951
"span.name": "aws.lambda",
952+
"span.kind": "server",
949953
"function_trigger.event_source": "kinesis",
950954
"function_trigger.event_source_arn": "XXXX"
951955
},
@@ -1122,6 +1126,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
11221126
"datadog_lambda": "X.X.X",
11231127
"dd_trace": "X.X.X",
11241128
"span.name": "aws.lambda",
1129+
"span.kind": "server",
11251130
"function_trigger.event_source": "s3",
11261131
"function_trigger.event_source_arn": "XXXX"
11271132
},
@@ -1287,6 +1292,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
12871292
"datadog_lambda": "X.X.X",
12881293
"dd_trace": "X.X.X",
12891294
"span.name": "aws.lambda",
1295+
"span.kind": "server",
12901296
"function_trigger.event_source": "sns",
12911297
"function_trigger.event_source_arn": "XXXX"
12921298
},
@@ -1451,6 +1457,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
14511457
"datadog_lambda": "X.X.X",
14521458
"dd_trace": "X.X.X",
14531459
"span.name": "aws.lambda",
1460+
"span.kind": "server",
14541461
"function_trigger.event_source": "sqs",
14551462
"function_trigger.event_source_arn": "XXXX"
14561463
},

tests/integration/snapshots/logs/async-metrics_python312.log

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
237237
"datadog_lambda": "X.X.X",
238238
"dd_trace": "X.X.X",
239239
"span.name": "aws.lambda",
240+
"span.kind": "server",
240241
"language": "python"
241242
},
242243
"metrics": {
@@ -445,6 +446,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
445446
"datadog_lambda": "X.X.X",
446447
"dd_trace": "X.X.X",
447448
"span.name": "aws.lambda",
449+
"span.kind": "server",
448450
"function_trigger.event_source": "dynamodb",
449451
"function_trigger.event_source_arn": "XXXX"
450452
},
@@ -605,6 +607,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
605607
"datadog_lambda": "X.X.X",
606608
"dd_trace": "X.X.X",
607609
"span.name": "aws.lambda",
610+
"span.kind": "server",
608611
"function_trigger.event_source": "eventbridge"
609612
},
610613
"metrics": {
@@ -946,6 +949,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
946949
"datadog_lambda": "X.X.X",
947950
"dd_trace": "X.X.X",
948951
"span.name": "aws.lambda",
952+
"span.kind": "server",
949953
"function_trigger.event_source": "kinesis",
950954
"function_trigger.event_source_arn": "XXXX"
951955
},
@@ -1122,6 +1126,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
11221126
"datadog_lambda": "X.X.X",
11231127
"dd_trace": "X.X.X",
11241128
"span.name": "aws.lambda",
1129+
"span.kind": "server",
11251130
"function_trigger.event_source": "s3",
11261131
"function_trigger.event_source_arn": "XXXX"
11271132
},
@@ -1287,6 +1292,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
12871292
"datadog_lambda": "X.X.X",
12881293
"dd_trace": "X.X.X",
12891294
"span.name": "aws.lambda",
1295+
"span.kind": "server",
12901296
"function_trigger.event_source": "sns",
12911297
"function_trigger.event_source_arn": "XXXX"
12921298
},
@@ -1451,6 +1457,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
14511457
"datadog_lambda": "X.X.X",
14521458
"dd_trace": "X.X.X",
14531459
"span.name": "aws.lambda",
1460+
"span.kind": "server",
14541461
"function_trigger.event_source": "sqs",
14551462
"function_trigger.event_source_arn": "XXXX"
14561463
},

tests/integration/snapshots/logs/async-metrics_python313.log

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
237237
"datadog_lambda": "X.X.X",
238238
"dd_trace": "X.X.X",
239239
"span.name": "aws.lambda",
240+
"span.kind": "server",
240241
"language": "python"
241242
},
242243
"metrics": {
@@ -445,6 +446,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
445446
"datadog_lambda": "X.X.X",
446447
"dd_trace": "X.X.X",
447448
"span.name": "aws.lambda",
449+
"span.kind": "server",
448450
"function_trigger.event_source": "dynamodb",
449451
"function_trigger.event_source_arn": "XXXX"
450452
},
@@ -605,6 +607,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
605607
"datadog_lambda": "X.X.X",
606608
"dd_trace": "X.X.X",
607609
"span.name": "aws.lambda",
610+
"span.kind": "server",
608611
"function_trigger.event_source": "eventbridge"
609612
},
610613
"metrics": {
@@ -946,6 +949,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
946949
"datadog_lambda": "X.X.X",
947950
"dd_trace": "X.X.X",
948951
"span.name": "aws.lambda",
952+
"span.kind": "server",
949953
"function_trigger.event_source": "kinesis",
950954
"function_trigger.event_source_arn": "XXXX"
951955
},
@@ -1122,6 +1126,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
11221126
"datadog_lambda": "X.X.X",
11231127
"dd_trace": "X.X.X",
11241128
"span.name": "aws.lambda",
1129+
"span.kind": "server",
11251130
"function_trigger.event_source": "s3",
11261131
"function_trigger.event_source_arn": "XXXX"
11271132
},
@@ -1287,6 +1292,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
12871292
"datadog_lambda": "X.X.X",
12881293
"dd_trace": "X.X.X",
12891294
"span.name": "aws.lambda",
1295+
"span.kind": "server",
12901296
"function_trigger.event_source": "sns",
12911297
"function_trigger.event_source_arn": "XXXX"
12921298
},
@@ -1451,6 +1457,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
14511457
"datadog_lambda": "X.X.X",
14521458
"dd_trace": "X.X.X",
14531459
"span.name": "aws.lambda",
1460+
"span.kind": "server",
14541461
"function_trigger.event_source": "sqs",
14551462
"function_trigger.event_source_arn": "XXXX"
14561463
},

tests/integration/snapshots/logs/async-metrics_python314.log

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs
237237
"datadog_lambda": "X.X.X",
238238
"dd_trace": "X.X.X",
239239
"span.name": "aws.lambda",
240+
"span.kind": "server",
240241
"language": "python"
241242
},
242243
"metrics": {
@@ -445,6 +446,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs
445446
"datadog_lambda": "X.X.X",
446447
"dd_trace": "X.X.X",
447448
"span.name": "aws.lambda",
449+
"span.kind": "server",
448450
"function_trigger.event_source": "dynamodb",
449451
"function_trigger.event_source_arn": "XXXX"
450452
},
@@ -605,6 +607,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs
605607
"datadog_lambda": "X.X.X",
606608
"dd_trace": "X.X.X",
607609
"span.name": "aws.lambda",
610+
"span.kind": "server",
608611
"function_trigger.event_source": "eventbridge"
609612
},
610613
"metrics": {
@@ -946,6 +949,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs
946949
"datadog_lambda": "X.X.X",
947950
"dd_trace": "X.X.X",
948951
"span.name": "aws.lambda",
952+
"span.kind": "server",
949953
"function_trigger.event_source": "kinesis",
950954
"function_trigger.event_source_arn": "XXXX"
951955
},
@@ -1122,6 +1126,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs
11221126
"datadog_lambda": "X.X.X",
11231127
"dd_trace": "X.X.X",
11241128
"span.name": "aws.lambda",
1129+
"span.kind": "server",
11251130
"function_trigger.event_source": "s3",
11261131
"function_trigger.event_source_arn": "XXXX"
11271132
},
@@ -1287,6 +1292,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs
12871292
"datadog_lambda": "X.X.X",
12881293
"dd_trace": "X.X.X",
12891294
"span.name": "aws.lambda",
1295+
"span.kind": "server",
12901296
"function_trigger.event_source": "sns",
12911297
"function_trigger.event_source_arn": "XXXX"
12921298
},
@@ -1451,6 +1457,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate, zs
14511457
"datadog_lambda": "X.X.X",
14521458
"dd_trace": "X.X.X",
14531459
"span.name": "aws.lambda",
1460+
"span.kind": "server",
14541461
"function_trigger.event_source": "sqs",
14551462
"function_trigger.event_source_arn": "XXXX"
14561463
},

tests/integration/snapshots/logs/async-metrics_python38.log

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
237237
"datadog_lambda": "X.X.X",
238238
"dd_trace": "X.X.X",
239239
"span.name": "aws.lambda",
240+
"span.kind": "server",
240241
"language": "python"
241242
},
242243
"metrics": {
@@ -445,6 +446,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
445446
"datadog_lambda": "X.X.X",
446447
"dd_trace": "X.X.X",
447448
"span.name": "aws.lambda",
449+
"span.kind": "server",
448450
"function_trigger.event_source": "dynamodb",
449451
"function_trigger.event_source_arn": "XXXX"
450452
},
@@ -605,6 +607,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
605607
"datadog_lambda": "X.X.X",
606608
"dd_trace": "X.X.X",
607609
"span.name": "aws.lambda",
610+
"span.kind": "server",
608611
"function_trigger.event_source": "eventbridge"
609612
},
610613
"metrics": {
@@ -946,6 +949,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
946949
"datadog_lambda": "X.X.X",
947950
"dd_trace": "X.X.X",
948951
"span.name": "aws.lambda",
952+
"span.kind": "server",
949953
"function_trigger.event_source": "kinesis",
950954
"function_trigger.event_source_arn": "XXXX"
951955
},
@@ -1122,6 +1126,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
11221126
"datadog_lambda": "X.X.X",
11231127
"dd_trace": "X.X.X",
11241128
"span.name": "aws.lambda",
1129+
"span.kind": "server",
11251130
"function_trigger.event_source": "s3",
11261131
"function_trigger.event_source_arn": "XXXX"
11271132
},
@@ -1287,6 +1292,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
12871292
"datadog_lambda": "X.X.X",
12881293
"dd_trace": "X.X.X",
12891294
"span.name": "aws.lambda",
1295+
"span.kind": "server",
12901296
"function_trigger.event_source": "sns",
12911297
"function_trigger.event_source_arn": "XXXX"
12921298
},
@@ -1451,6 +1457,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
14511457
"datadog_lambda": "X.X.X",
14521458
"dd_trace": "X.X.X",
14531459
"span.name": "aws.lambda",
1460+
"span.kind": "server",
14541461
"function_trigger.event_source": "sqs",
14551462
"function_trigger.event_source_arn": "XXXX"
14561463
},

tests/integration/snapshots/logs/async-metrics_python39.log

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
237237
"datadog_lambda": "X.X.X",
238238
"dd_trace": "X.X.X",
239239
"span.name": "aws.lambda",
240+
"span.kind": "server",
240241
"language": "python"
241242
},
242243
"metrics": {
@@ -445,6 +446,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
445446
"datadog_lambda": "X.X.X",
446447
"dd_trace": "X.X.X",
447448
"span.name": "aws.lambda",
449+
"span.kind": "server",
448450
"function_trigger.event_source": "dynamodb",
449451
"function_trigger.event_source_arn": "XXXX"
450452
},
@@ -605,6 +607,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
605607
"datadog_lambda": "X.X.X",
606608
"dd_trace": "X.X.X",
607609
"span.name": "aws.lambda",
610+
"span.kind": "server",
608611
"function_trigger.event_source": "eventbridge"
609612
},
610613
"metrics": {
@@ -946,6 +949,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
946949
"datadog_lambda": "X.X.X",
947950
"dd_trace": "X.X.X",
948951
"span.name": "aws.lambda",
952+
"span.kind": "server",
949953
"function_trigger.event_source": "kinesis",
950954
"function_trigger.event_source_arn": "XXXX"
951955
},
@@ -1122,6 +1126,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
11221126
"datadog_lambda": "X.X.X",
11231127
"dd_trace": "X.X.X",
11241128
"span.name": "aws.lambda",
1129+
"span.kind": "server",
11251130
"function_trigger.event_source": "s3",
11261131
"function_trigger.event_source_arn": "XXXX"
11271132
},
@@ -1287,6 +1292,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
12871292
"datadog_lambda": "X.X.X",
12881293
"dd_trace": "X.X.X",
12891294
"span.name": "aws.lambda",
1295+
"span.kind": "server",
12901296
"function_trigger.event_source": "sns",
12911297
"function_trigger.event_source_arn": "XXXX"
12921298
},
@@ -1451,6 +1457,7 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate","A
14511457
"datadog_lambda": "X.X.X",
14521458
"dd_trace": "X.X.X",
14531459
"span.name": "aws.lambda",
1460+
"span.kind": "server",
14541461
"function_trigger.event_source": "sqs",
14551462
"function_trigger.event_source_arn": "XXXX"
14561463
},

0 commit comments

Comments
 (0)