Skip to content

Commit

Permalink
Add S3 Downstream Span Pointers (#587)
Browse files Browse the repository at this point in the history
  • Loading branch information
nhulston authored Dec 6, 2024
1 parent 27781a0 commit 4061917
Show file tree
Hide file tree
Showing 121 changed files with 4,846 additions and 46 deletions.
39 changes: 39 additions & 0 deletions integration_tests/input_events/s3-completemultipartupload.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"Records": [
{
"eventVersion": "2.1",
"eventSource": "aws:s3",
"awsRegion": "us-east-1",
"eventTime": "2024-11-27T15:13:12.668Z",
"eventName": "ObjectCreated:CompleteMultipartUpload",
"userIdentity": {
"principalId": "AWS:ABCDEFGHIJKLMNOPQRSTU:my-upstream-function"
},
"requestParameters": {
"sourceIPAddress": "1.234.56.78"
},
"responseElements": {
"x-amz-request-id": "V1234567890ABCDE",
"x-amz-id-2": "ABCDEFGHI+abcdefghijklmn/1234567890+1234567890="
},
"s3": {
"s3SchemaVersion": "1.0",
"configurationId": "abcde-1234-5678-9012-abcde1234567890",
"bucket": {
"name": "my-bucket-name",
"ownerIdentity": {
"principalId": "ABCDEFGHIJKLMN"
},
"arn": "arn:aws:s3:::my-bucket-name"
},
"object": {
"key": "multipart_object.txt",
"size": 8388608,
"eTag": "09876543210987654321098765432109-2",
"versionId": "r_qtaksdfj9127489Uaksdfj",
"sequencer": "00112233445566AABB"
}
}
}
]
}
39 changes: 39 additions & 0 deletions integration_tests/input_events/s3-copyobject.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"Records": [
{
"eventVersion": "2.1",
"eventSource": "aws:s3",
"awsRegion": "us-east-1",
"eventTime": "2024-11-27T15:13:08.307Z",
"eventName": "ObjectCreated:Copy",
"userIdentity": {
"principalId": "AWS:ABCDEFGHIJKLMNOPQRSTU:my-upstream-function"
},
"requestParameters": {
"sourceIPAddress": "1.234.56.78"
},
"responseElements": {
"x-amz-request-id": "V1234567890ABCDE",
"x-amz-id-2": "ABCDEFGHI+abcdefghijklmn/1234567890+1234567890="
},
"s3": {
"s3SchemaVersion": "1.0",
"configurationId": "abcde-1234-5678-9012-abcde1234567890",
"bucket": {
"name": "my-bucket-name",
"ownerIdentity": {
"principalId": "ABCDEFGHIJKLMN"
},
"arn": "arn:aws:s3:::my-bucket-name"
},
"object": {
"key": "copied_object.txt",
"size": 100,
"eTag": "01234567890123456789012345678901",
"versionId": "r_qtaksdfj9127489Uaksdfj",
"sequencer": "00112233445566AABB"
}
}
}
]
}
39 changes: 39 additions & 0 deletions integration_tests/input_events/s3-putobject.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"Records": [
{
"eventVersion": "2.1",
"eventSource": "aws:s3",
"awsRegion": "us-east-1",
"eventTime": "2024-11-27T15:13:03.715Z",
"eventName": "ObjectCreated:Put",
"userIdentity": {
"principalId": "AWS:ABCDEFGHIJKLMNOPQRSTU:my-upstream-function"
},
"requestParameters": {
"sourceIPAddress": "1.234.56.78"
},
"responseElements": {
"x-amz-request-id": "V1234567890ABCDE",
"x-amz-id-2": "ABCDEFGHI+abcdefghijklmn/1234567890+1234567890="
},
"s3": {
"s3SchemaVersion": "1.0",
"configurationId": "abcde-1234-5678-9012-abcde1234567890",
"bucket": {
"name": "my-bucket-name",
"ownerIdentity": {
"principalId": "ABCDEFGHIJKLMN"
},
"arn": "arn:aws:s3:::my-bucket-name"
},
"object": {
"key": "test_object.txt",
"size": 100,
"eTag": "abcdef0123456789abcdef01234567890",
"versionId": "r_qtaksdfj9127489Uaksdfj",
"sequencer": "00112233445566AABB"
}
}
}
]
}
6 changes: 6 additions & 0 deletions integration_tests/process-input-traced.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,12 @@ const getRecordIds = tracer.wrap("getRecordIds", (event) => {
eventType = "SNS";
recordIds.push(record.Sns.MessageId);
}
if (record.s3) {
eventType = "S3";
const bucketName = record.s3.bucket.name;
const objectKey = record.s3.object.key;
recordIds.push(`${bucketName}/${objectKey}`);
}
});
}

Expand Down
92 changes: 88 additions & 4 deletions integration_tests/snapshots/logs/async-metrics_node16.log
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@

START
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed APIGateway request
{
"e": XXXX,
"m": "aws.lambda.enhanced.invocations",
Expand All @@ -8,8 +9,8 @@ START
"account_id:XXXX",
"functionname:integration-tests-js-XXXX-async-metrics_node16",
"resource:integration-tests-js-XXXX-async-metrics_node16",
"cold_start:true",
"memorysize:1024",
"cold_start:true",
"datadog_lambda:vX.X.X",
"runtime:nodejs16.x"
],
Expand All @@ -25,7 +26,6 @@ START
],
"v": 1
}
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed APIGateway request
{
"e": XXXX,
"m": "serverless.integration_test.execution",
Expand All @@ -38,6 +38,7 @@ XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed APIGat
}
END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB
START
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed undefined request
{
"e": XXXX,
"m": "aws.lambda.enhanced.invocations",
Expand All @@ -46,14 +47,97 @@ START
"account_id:XXXX",
"functionname:integration-tests-js-XXXX-async-metrics_node16",
"resource:integration-tests-js-XXXX-async-metrics_node16",
"memorysize:1024",
"cold_start:false",
"datadog_lambda:vX.X.X",
"runtime:nodejs16.x"
],
"v": 1
}
{
"e": XXXX,
"m": "serverless.integration_test.execution",
"t": [
"tagkey:tagvalue",
"eventsource:undefined",
"dd_lambda_layer:datadog-nodev16.XX.X"
],
"v": 1
}
END Duration: XXXX ms Memory Used: XXXX MB
START
{
"e": XXXX,
"m": "aws.lambda.enhanced.invocations",
"t": [
"region:eu-west-1",
"account_id:XXXX",
"functionname:integration-tests-js-XXXX-async-metrics_node16",
"resource:integration-tests-js-XXXX-async-metrics_node16",
"memorysize:1024",
"cold_start:false",
"datadog_lambda:vX.X.X",
"runtime:nodejs16.x"
],
"v": 1
}
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed undefined request
{
"e": XXXX,
"m": "serverless.integration_test.execution",
"t": [
"tagkey:tagvalue",
"eventsource:undefined",
"dd_lambda_layer:datadog-nodev16.XX.X"
],
"v": 1
}
END Duration: XXXX ms Memory Used: XXXX MB
START
{
"e": XXXX,
"m": "aws.lambda.enhanced.invocations",
"t": [
"region:eu-west-1",
"account_id:XXXX",
"functionname:integration-tests-js-XXXX-async-metrics_node16",
"resource:integration-tests-js-XXXX-async-metrics_node16",
"memorysize:1024",
"cold_start:false",
"datadog_lambda:vX.X.X",
"runtime:nodejs16.x"
],
"v": 1
}
{
"e": XXXX,
"m": "serverless.integration_test.execution",
"t": [
"tagkey:tagvalue",
"eventsource:undefined",
"dd_lambda_layer:datadog-nodev16.XX.X"
],
"v": 1
}
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed undefined request
END Duration: XXXX ms Memory Used: XXXX MB
START
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed SNS request
{
"e": XXXX,
"m": "aws.lambda.enhanced.invocations",
"t": [
"region:eu-west-1",
"account_id:XXXX",
"functionname:integration-tests-js-XXXX-async-metrics_node16",
"resource:integration-tests-js-XXXX-async-metrics_node16",
"memorysize:1024",
"cold_start:false",
"datadog_lambda:vX.X.X",
"runtime:nodejs16.x"
],
"v": 1
}
{
"e": XXXX,
"m": "serverless.integration_test.records_processed",
Expand All @@ -76,7 +160,6 @@ XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed SNS re
}
END Duration: XXXX ms Memory Used: XXXX MB
START
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed SQS request
{
"e": XXXX,
"m": "aws.lambda.enhanced.invocations",
Expand All @@ -85,8 +168,8 @@ XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed SQS re
"account_id:XXXX",
"functionname:integration-tests-js-XXXX-async-metrics_node16",
"resource:integration-tests-js-XXXX-async-metrics_node16",
"cold_start:false",
"memorysize:1024",
"cold_start:false",
"datadog_lambda:vX.X.X",
"runtime:nodejs16.x"
],
Expand All @@ -102,6 +185,7 @@ XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed SQS re
],
"v": 1
}
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed SQS request
{
"e": XXXX,
"m": "serverless.integration_test.records_processed",
Expand Down
Loading

0 comments on commit 4061917

Please sign in to comment.