Skip to content

Commit 36610c1

Browse files
authored
Reduce allocations during event parsing. (#463)
* Reduce allocations during event parsing. * Simplify SQS/SNS data extraction logic. * Update snapshots.
1 parent 06395b8 commit 36610c1

11 files changed

+497
-522
lines changed

datadog_lambda/tracing.py

+149-174
Large diffs are not rendered by default.

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

+34-34
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate", "
6767
"_inferred_span.tag_source": "self",
6868
"http.status_code": "200",
6969
"peer.service": "integration-tests-python",
70+
"_dd.peer.service.source": "peer.service",
71+
"_dd.base_service": "integration-tests-python",
7072
"_dd.p.dm": "-0",
7173
"_dd.p.tid": "XXXX",
72-
"language": "python",
73-
"_dd.peer.service.source": "peer.service",
74-
"_dd.base_service": "integration-tests-python"
74+
"language": "python"
7575
},
7676
"metrics": {
7777
"process_id": XXXX,
@@ -237,16 +237,16 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate", "
237237
"_inferred_span.synchronicity": "async",
238238
"_inferred_span.tag_source": "self",
239239
"peer.service": "integration-tests-python",
240+
"_dd.peer.service.source": "peer.service",
241+
"_dd.base_service": "integration-tests-python",
240242
"_dd.p.dm": "-0",
241243
"_dd.p.tid": "XXXX",
242-
"language": "python",
243-
"_dd.peer.service.source": "peer.service",
244-
"_dd.base_service": "integration-tests-python"
244+
"language": "python"
245245
},
246246
"metrics": {
247247
"process_id": XXXX,
248248
"_dd.top_level": 1,
249-
"_sampling_priority_v1": 1
249+
"_sampling_priority_v1": -1
250250
},
251251
"type": "web"
252252
},
@@ -397,11 +397,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate", "
397397
"_inferred_span.synchronicity": "async",
398398
"_inferred_span.tag_source": "self",
399399
"peer.service": "integration-tests-python",
400+
"_dd.peer.service.source": "peer.service",
401+
"_dd.base_service": "integration-tests-python",
400402
"_dd.p.dm": "-0",
401403
"_dd.p.tid": "XXXX",
402-
"language": "python",
403-
"_dd.peer.service.source": "peer.service",
404-
"_dd.base_service": "integration-tests-python"
404+
"language": "python"
405405
},
406406
"metrics": {
407407
"process_id": XXXX,
@@ -566,16 +566,16 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate", "
566566
"_inferred_span.tag_source": "self",
567567
"http.status_code": "200",
568568
"peer.service": "integration-tests-python",
569+
"_dd.peer.service.source": "peer.service",
570+
"_dd.base_service": "integration-tests-python",
569571
"_dd.p.dm": "-0",
570572
"_dd.p.tid": "XXXX",
571-
"language": "python",
572-
"_dd.peer.service.source": "peer.service",
573-
"_dd.base_service": "integration-tests-python"
573+
"language": "python"
574574
},
575575
"metrics": {
576576
"process_id": XXXX,
577577
"_dd.top_level": 1,
578-
"_sampling_priority_v1": 1
578+
"_sampling_priority_v1": -1
579579
},
580580
"type": "http"
581581
},
@@ -736,16 +736,16 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate", "
736736
"_inferred_span.synchronicity": "async",
737737
"_inferred_span.tag_source": "self",
738738
"peer.service": "integration-tests-python",
739+
"_dd.peer.service.source": "peer.service",
740+
"_dd.base_service": "integration-tests-python",
739741
"_dd.p.dm": "-0",
740742
"_dd.p.tid": "XXXX",
741-
"language": "python",
742-
"_dd.peer.service.source": "peer.service",
743-
"_dd.base_service": "integration-tests-python"
743+
"language": "python"
744744
},
745745
"metrics": {
746746
"process_id": XXXX,
747747
"_dd.top_level": 1,
748-
"_sampling_priority_v1": 1
748+
"_sampling_priority_v1": -1
749749
},
750750
"type": "web"
751751
},
@@ -899,16 +899,16 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate", "
899899
"_inferred_span.synchronicity": "async",
900900
"_inferred_span.tag_source": "self",
901901
"peer.service": "integration-tests-python",
902+
"_dd.peer.service.source": "peer.service",
903+
"_dd.base_service": "integration-tests-python",
902904
"_dd.p.dm": "-0",
903905
"_dd.p.tid": "XXXX",
904-
"language": "python",
905-
"_dd.peer.service.source": "peer.service",
906-
"_dd.base_service": "integration-tests-python"
906+
"language": "python"
907907
},
908908
"metrics": {
909909
"process_id": XXXX,
910910
"_dd.top_level": 1,
911-
"_sampling_priority_v1": 1
911+
"_sampling_priority_v1": -1
912912
},
913913
"type": "web"
914914
},
@@ -1063,16 +1063,16 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate", "
10631063
"_inferred_span.synchronicity": "async",
10641064
"_inferred_span.tag_source": "self",
10651065
"peer.service": "integration-tests-python",
1066+
"_dd.peer.service.source": "peer.service",
1067+
"_dd.base_service": "integration-tests-python",
10661068
"_dd.p.dm": "-0",
10671069
"_dd.p.tid": "XXXX",
1068-
"language": "python",
1069-
"_dd.peer.service.source": "peer.service",
1070-
"_dd.base_service": "integration-tests-python"
1070+
"language": "python"
10711071
},
10721072
"metrics": {
10731073
"process_id": XXXX,
10741074
"_dd.top_level": 1,
1075-
"_sampling_priority_v1": 1
1075+
"_sampling_priority_v1": -1
10761076
},
10771077
"type": "web"
10781078
},
@@ -1226,16 +1226,16 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate", "
12261226
"_inferred_span.synchronicity": "async",
12271227
"_inferred_span.tag_source": "self",
12281228
"peer.service": "integration-tests-python",
1229+
"_dd.peer.service.source": "peer.service",
1230+
"_dd.base_service": "integration-tests-python",
12291231
"_dd.p.dm": "-0",
12301232
"_dd.p.tid": "XXXX",
1231-
"language": "python",
1232-
"_dd.peer.service.source": "peer.service",
1233-
"_dd.base_service": "integration-tests-python"
1233+
"language": "python"
12341234
},
12351235
"metrics": {
12361236
"process_id": XXXX,
12371237
"_dd.top_level": 1,
1238-
"_sampling_priority_v1": 1
1238+
"_sampling_priority_v1": -1
12391239
},
12401240
"type": "web"
12411241
},
@@ -1395,16 +1395,16 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate", "
13951395
"_inferred_span.tag_source": "self",
13961396
"http.status_code": "200",
13971397
"peer.service": "integration-tests-python",
1398+
"_dd.peer.service.source": "peer.service",
1399+
"_dd.base_service": "integration-tests-python",
13981400
"_dd.p.dm": "-0",
13991401
"_dd.p.tid": "XXXX",
1400-
"language": "python",
1401-
"_dd.peer.service.source": "peer.service",
1402-
"_dd.base_service": "integration-tests-python"
1402+
"language": "python"
14031403
},
14041404
"metrics": {
14051405
"process_id": XXXX,
14061406
"_dd.top_level": 1,
1407-
"_sampling_priority_v1": 1
1407+
"_sampling_priority_v1": -1
14081408
},
14091409
"type": "web"
14101410
},

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

+35-35
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate", "
6767
"_inferred_span.tag_source": "self",
6868
"http.status_code": "200",
6969
"peer.service": "integration-tests-python",
70+
"_dd.peer.service.source": "peer.service",
71+
"_dd.base_service": "integration-tests-python",
7072
"_dd.p.dm": "-0",
7173
"_dd.p.tid": "XXXX",
72-
"language": "python",
73-
"_dd.peer.service.source": "peer.service",
74-
"_dd.base_service": "integration-tests-python"
74+
"language": "python"
7575
},
7676
"metrics": {
7777
"process_id": XXXX,
@@ -237,16 +237,16 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate", "
237237
"_inferred_span.synchronicity": "async",
238238
"_inferred_span.tag_source": "self",
239239
"peer.service": "integration-tests-python",
240+
"_dd.peer.service.source": "peer.service",
241+
"_dd.base_service": "integration-tests-python",
240242
"_dd.p.dm": "-0",
241243
"_dd.p.tid": "XXXX",
242-
"language": "python",
243-
"_dd.peer.service.source": "peer.service",
244-
"_dd.base_service": "integration-tests-python"
244+
"language": "python"
245245
},
246246
"metrics": {
247247
"process_id": XXXX,
248248
"_dd.top_level": 1,
249-
"_sampling_priority_v1": 1
249+
"_sampling_priority_v1": -1
250250
},
251251
"type": "web"
252252
},
@@ -397,11 +397,11 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate", "
397397
"_inferred_span.synchronicity": "async",
398398
"_inferred_span.tag_source": "self",
399399
"peer.service": "integration-tests-python",
400+
"_dd.peer.service.source": "peer.service",
401+
"_dd.base_service": "integration-tests-python",
400402
"_dd.p.dm": "-0",
401403
"_dd.p.tid": "XXXX",
402-
"language": "python",
403-
"_dd.peer.service.source": "peer.service",
404-
"_dd.base_service": "integration-tests-python"
404+
"language": "python"
405405
},
406406
"metrics": {
407407
"process_id": XXXX,
@@ -566,16 +566,16 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate", "
566566
"_inferred_span.tag_source": "self",
567567
"http.status_code": "200",
568568
"peer.service": "integration-tests-python",
569+
"_dd.peer.service.source": "peer.service",
570+
"_dd.base_service": "integration-tests-python",
569571
"_dd.p.dm": "-0",
570572
"_dd.p.tid": "XXXX",
571-
"language": "python",
572-
"_dd.peer.service.source": "peer.service",
573-
"_dd.base_service": "integration-tests-python"
573+
"language": "python"
574574
},
575575
"metrics": {
576576
"process_id": XXXX,
577577
"_dd.top_level": 1,
578-
"_sampling_priority_v1": 1
578+
"_sampling_priority_v1": -1
579579
},
580580
"type": "http"
581581
},
@@ -708,6 +708,7 @@ START
708708
}
709709
HTTP GET https://datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate", "Accept:*/*", "Connection:keep-alive", "User-Agent:python-requests/X.X.X", "traceparent:XXX", "tracestate:XXX
710710
HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate", "Accept:*/*", "Connection:keep-alive", "User-Agent:python-requests/X.X.X", "traceparent:XXX", "tracestate:XXX
711+
END Duration: XXXX ms Memory Used: XXXX MB
711712
{
712713
"traces": [
713714
[
@@ -736,16 +737,16 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate", "
736737
"_inferred_span.synchronicity": "async",
737738
"_inferred_span.tag_source": "self",
738739
"peer.service": "integration-tests-python",
740+
"_dd.peer.service.source": "peer.service",
741+
"_dd.base_service": "integration-tests-python",
739742
"_dd.p.dm": "-0",
740743
"_dd.p.tid": "XXXX",
741-
"language": "python",
742-
"_dd.peer.service.source": "peer.service",
743-
"_dd.base_service": "integration-tests-python"
744+
"language": "python"
744745
},
745746
"metrics": {
746747
"process_id": XXXX,
747748
"_dd.top_level": 1,
748-
"_sampling_priority_v1": 1
749+
"_sampling_priority_v1": -1
749750
},
750751
"type": "web"
751752
},
@@ -834,7 +835,6 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate", "
834835
]
835836
]
836837
}
837-
END Duration: XXXX ms Memory Used: XXXX MB
838838
START
839839
{
840840
"m": "aws.lambda.enhanced.invocations",
@@ -899,16 +899,16 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate", "
899899
"_inferred_span.synchronicity": "async",
900900
"_inferred_span.tag_source": "self",
901901
"peer.service": "integration-tests-python",
902+
"_dd.peer.service.source": "peer.service",
903+
"_dd.base_service": "integration-tests-python",
902904
"_dd.p.dm": "-0",
903905
"_dd.p.tid": "XXXX",
904-
"language": "python",
905-
"_dd.peer.service.source": "peer.service",
906-
"_dd.base_service": "integration-tests-python"
906+
"language": "python"
907907
},
908908
"metrics": {
909909
"process_id": XXXX,
910910
"_dd.top_level": 1,
911-
"_sampling_priority_v1": 1
911+
"_sampling_priority_v1": -1
912912
},
913913
"type": "web"
914914
},
@@ -1063,16 +1063,16 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate", "
10631063
"_inferred_span.synchronicity": "async",
10641064
"_inferred_span.tag_source": "self",
10651065
"peer.service": "integration-tests-python",
1066+
"_dd.peer.service.source": "peer.service",
1067+
"_dd.base_service": "integration-tests-python",
10661068
"_dd.p.dm": "-0",
10671069
"_dd.p.tid": "XXXX",
1068-
"language": "python",
1069-
"_dd.peer.service.source": "peer.service",
1070-
"_dd.base_service": "integration-tests-python"
1070+
"language": "python"
10711071
},
10721072
"metrics": {
10731073
"process_id": XXXX,
10741074
"_dd.top_level": 1,
1075-
"_sampling_priority_v1": 1
1075+
"_sampling_priority_v1": -1
10761076
},
10771077
"type": "web"
10781078
},
@@ -1226,16 +1226,16 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate", "
12261226
"_inferred_span.synchronicity": "async",
12271227
"_inferred_span.tag_source": "self",
12281228
"peer.service": "integration-tests-python",
1229+
"_dd.peer.service.source": "peer.service",
1230+
"_dd.base_service": "integration-tests-python",
12291231
"_dd.p.dm": "-0",
12301232
"_dd.p.tid": "XXXX",
1231-
"language": "python",
1232-
"_dd.peer.service.source": "peer.service",
1233-
"_dd.base_service": "integration-tests-python"
1233+
"language": "python"
12341234
},
12351235
"metrics": {
12361236
"process_id": XXXX,
12371237
"_dd.top_level": 1,
1238-
"_sampling_priority_v1": 1
1238+
"_sampling_priority_v1": -1
12391239
},
12401240
"type": "web"
12411241
},
@@ -1395,16 +1395,16 @@ HTTP GET https://www.datadoghq.com/ Headers: ["Accept-Encoding:gzip, deflate", "
13951395
"_inferred_span.tag_source": "self",
13961396
"http.status_code": "200",
13971397
"peer.service": "integration-tests-python",
1398+
"_dd.peer.service.source": "peer.service",
1399+
"_dd.base_service": "integration-tests-python",
13981400
"_dd.p.dm": "-0",
13991401
"_dd.p.tid": "XXXX",
1400-
"language": "python",
1401-
"_dd.peer.service.source": "peer.service",
1402-
"_dd.base_service": "integration-tests-python"
1402+
"language": "python"
14031403
},
14041404
"metrics": {
14051405
"process_id": XXXX,
14061406
"_dd.top_level": 1,
1407-
"_sampling_priority_v1": 1
1407+
"_sampling_priority_v1": -1
14081408
},
14091409
"type": "web"
14101410
},

0 commit comments

Comments
 (0)