Skip to content

Commit 4061917

Browse files
authored
Add S3 Downstream Span Pointers (#587)
1 parent 27781a0 commit 4061917

File tree

121 files changed

+4846
-46
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

121 files changed

+4846
-46
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
{
2+
"Records": [
3+
{
4+
"eventVersion": "2.1",
5+
"eventSource": "aws:s3",
6+
"awsRegion": "us-east-1",
7+
"eventTime": "2024-11-27T15:13:12.668Z",
8+
"eventName": "ObjectCreated:CompleteMultipartUpload",
9+
"userIdentity": {
10+
"principalId": "AWS:ABCDEFGHIJKLMNOPQRSTU:my-upstream-function"
11+
},
12+
"requestParameters": {
13+
"sourceIPAddress": "1.234.56.78"
14+
},
15+
"responseElements": {
16+
"x-amz-request-id": "V1234567890ABCDE",
17+
"x-amz-id-2": "ABCDEFGHI+abcdefghijklmn/1234567890+1234567890="
18+
},
19+
"s3": {
20+
"s3SchemaVersion": "1.0",
21+
"configurationId": "abcde-1234-5678-9012-abcde1234567890",
22+
"bucket": {
23+
"name": "my-bucket-name",
24+
"ownerIdentity": {
25+
"principalId": "ABCDEFGHIJKLMN"
26+
},
27+
"arn": "arn:aws:s3:::my-bucket-name"
28+
},
29+
"object": {
30+
"key": "multipart_object.txt",
31+
"size": 8388608,
32+
"eTag": "09876543210987654321098765432109-2",
33+
"versionId": "r_qtaksdfj9127489Uaksdfj",
34+
"sequencer": "00112233445566AABB"
35+
}
36+
}
37+
}
38+
]
39+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
{
2+
"Records": [
3+
{
4+
"eventVersion": "2.1",
5+
"eventSource": "aws:s3",
6+
"awsRegion": "us-east-1",
7+
"eventTime": "2024-11-27T15:13:08.307Z",
8+
"eventName": "ObjectCreated:Copy",
9+
"userIdentity": {
10+
"principalId": "AWS:ABCDEFGHIJKLMNOPQRSTU:my-upstream-function"
11+
},
12+
"requestParameters": {
13+
"sourceIPAddress": "1.234.56.78"
14+
},
15+
"responseElements": {
16+
"x-amz-request-id": "V1234567890ABCDE",
17+
"x-amz-id-2": "ABCDEFGHI+abcdefghijklmn/1234567890+1234567890="
18+
},
19+
"s3": {
20+
"s3SchemaVersion": "1.0",
21+
"configurationId": "abcde-1234-5678-9012-abcde1234567890",
22+
"bucket": {
23+
"name": "my-bucket-name",
24+
"ownerIdentity": {
25+
"principalId": "ABCDEFGHIJKLMN"
26+
},
27+
"arn": "arn:aws:s3:::my-bucket-name"
28+
},
29+
"object": {
30+
"key": "copied_object.txt",
31+
"size": 100,
32+
"eTag": "01234567890123456789012345678901",
33+
"versionId": "r_qtaksdfj9127489Uaksdfj",
34+
"sequencer": "00112233445566AABB"
35+
}
36+
}
37+
}
38+
]
39+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
{
2+
"Records": [
3+
{
4+
"eventVersion": "2.1",
5+
"eventSource": "aws:s3",
6+
"awsRegion": "us-east-1",
7+
"eventTime": "2024-11-27T15:13:03.715Z",
8+
"eventName": "ObjectCreated:Put",
9+
"userIdentity": {
10+
"principalId": "AWS:ABCDEFGHIJKLMNOPQRSTU:my-upstream-function"
11+
},
12+
"requestParameters": {
13+
"sourceIPAddress": "1.234.56.78"
14+
},
15+
"responseElements": {
16+
"x-amz-request-id": "V1234567890ABCDE",
17+
"x-amz-id-2": "ABCDEFGHI+abcdefghijklmn/1234567890+1234567890="
18+
},
19+
"s3": {
20+
"s3SchemaVersion": "1.0",
21+
"configurationId": "abcde-1234-5678-9012-abcde1234567890",
22+
"bucket": {
23+
"name": "my-bucket-name",
24+
"ownerIdentity": {
25+
"principalId": "ABCDEFGHIJKLMN"
26+
},
27+
"arn": "arn:aws:s3:::my-bucket-name"
28+
},
29+
"object": {
30+
"key": "test_object.txt",
31+
"size": 100,
32+
"eTag": "abcdef0123456789abcdef01234567890",
33+
"versionId": "r_qtaksdfj9127489Uaksdfj",
34+
"sequencer": "00112233445566AABB"
35+
}
36+
}
37+
}
38+
]
39+
}

integration_tests/process-input-traced.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,12 @@ const getRecordIds = tracer.wrap("getRecordIds", (event) => {
5050
eventType = "SNS";
5151
recordIds.push(record.Sns.MessageId);
5252
}
53+
if (record.s3) {
54+
eventType = "S3";
55+
const bucketName = record.s3.bucket.name;
56+
const objectKey = record.s3.object.key;
57+
recordIds.push(`${bucketName}/${objectKey}`);
58+
}
5359
});
5460
}
5561

integration_tests/snapshots/logs/async-metrics_node16.log

Lines changed: 88 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11

22
START
3+
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed APIGateway request
34
{
45
"e": XXXX,
56
"m": "aws.lambda.enhanced.invocations",
@@ -8,8 +9,8 @@ START
89
"account_id:XXXX",
910
"functionname:integration-tests-js-XXXX-async-metrics_node16",
1011
"resource:integration-tests-js-XXXX-async-metrics_node16",
11-
"cold_start:true",
1212
"memorysize:1024",
13+
"cold_start:true",
1314
"datadog_lambda:vX.X.X",
1415
"runtime:nodejs16.x"
1516
],
@@ -25,7 +26,6 @@ START
2526
],
2627
"v": 1
2728
}
28-
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed APIGateway request
2929
{
3030
"e": XXXX,
3131
"m": "serverless.integration_test.execution",
@@ -38,6 +38,7 @@ XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed APIGat
3838
}
3939
END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB
4040
START
41+
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed undefined request
4142
{
4243
"e": XXXX,
4344
"m": "aws.lambda.enhanced.invocations",
@@ -46,14 +47,97 @@ START
4647
"account_id:XXXX",
4748
"functionname:integration-tests-js-XXXX-async-metrics_node16",
4849
"resource:integration-tests-js-XXXX-async-metrics_node16",
50+
"memorysize:1024",
4951
"cold_start:false",
52+
"datadog_lambda:vX.X.X",
53+
"runtime:nodejs16.x"
54+
],
55+
"v": 1
56+
}
57+
{
58+
"e": XXXX,
59+
"m": "serverless.integration_test.execution",
60+
"t": [
61+
"tagkey:tagvalue",
62+
"eventsource:undefined",
63+
"dd_lambda_layer:datadog-nodev16.XX.X"
64+
],
65+
"v": 1
66+
}
67+
END Duration: XXXX ms Memory Used: XXXX MB
68+
START
69+
{
70+
"e": XXXX,
71+
"m": "aws.lambda.enhanced.invocations",
72+
"t": [
73+
"region:eu-west-1",
74+
"account_id:XXXX",
75+
"functionname:integration-tests-js-XXXX-async-metrics_node16",
76+
"resource:integration-tests-js-XXXX-async-metrics_node16",
77+
"memorysize:1024",
78+
"cold_start:false",
79+
"datadog_lambda:vX.X.X",
80+
"runtime:nodejs16.x"
81+
],
82+
"v": 1
83+
}
84+
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed undefined request
85+
{
86+
"e": XXXX,
87+
"m": "serverless.integration_test.execution",
88+
"t": [
89+
"tagkey:tagvalue",
90+
"eventsource:undefined",
91+
"dd_lambda_layer:datadog-nodev16.XX.X"
92+
],
93+
"v": 1
94+
}
95+
END Duration: XXXX ms Memory Used: XXXX MB
96+
START
97+
{
98+
"e": XXXX,
99+
"m": "aws.lambda.enhanced.invocations",
100+
"t": [
101+
"region:eu-west-1",
102+
"account_id:XXXX",
103+
"functionname:integration-tests-js-XXXX-async-metrics_node16",
104+
"resource:integration-tests-js-XXXX-async-metrics_node16",
50105
"memorysize:1024",
106+
"cold_start:false",
51107
"datadog_lambda:vX.X.X",
52108
"runtime:nodejs16.x"
53109
],
54110
"v": 1
55111
}
112+
{
113+
"e": XXXX,
114+
"m": "serverless.integration_test.execution",
115+
"t": [
116+
"tagkey:tagvalue",
117+
"eventsource:undefined",
118+
"dd_lambda_layer:datadog-nodev16.XX.X"
119+
],
120+
"v": 1
121+
}
122+
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed undefined request
123+
END Duration: XXXX ms Memory Used: XXXX MB
124+
START
56125
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed SNS request
126+
{
127+
"e": XXXX,
128+
"m": "aws.lambda.enhanced.invocations",
129+
"t": [
130+
"region:eu-west-1",
131+
"account_id:XXXX",
132+
"functionname:integration-tests-js-XXXX-async-metrics_node16",
133+
"resource:integration-tests-js-XXXX-async-metrics_node16",
134+
"memorysize:1024",
135+
"cold_start:false",
136+
"datadog_lambda:vX.X.X",
137+
"runtime:nodejs16.x"
138+
],
139+
"v": 1
140+
}
57141
{
58142
"e": XXXX,
59143
"m": "serverless.integration_test.records_processed",
@@ -76,7 +160,6 @@ XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed SNS re
76160
}
77161
END Duration: XXXX ms Memory Used: XXXX MB
78162
START
79-
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed SQS request
80163
{
81164
"e": XXXX,
82165
"m": "aws.lambda.enhanced.invocations",
@@ -85,8 +168,8 @@ XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed SQS re
85168
"account_id:XXXX",
86169
"functionname:integration-tests-js-XXXX-async-metrics_node16",
87170
"resource:integration-tests-js-XXXX-async-metrics_node16",
88-
"cold_start:false",
89171
"memorysize:1024",
172+
"cold_start:false",
90173
"datadog_lambda:vX.X.X",
91174
"runtime:nodejs16.x"
92175
],
@@ -102,6 +185,7 @@ XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed SQS re
102185
],
103186
"v": 1
104187
}
188+
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed SQS request
105189
{
106190
"e": XXXX,
107191
"m": "serverless.integration_test.records_processed",

0 commit comments

Comments
 (0)