Skip to content

Commit 8ab3c90

Browse files
authored
Update condition for setting dd parent source (#95)
* Fix condition for setting dd parent source * Set dd parent source when trace source is event * Update integration tests * Fix unit tests * Update version
1 parent 5ffef30 commit 8ab3c90

File tree

5 files changed

+14
-12
lines changed

5 files changed

+14
-12
lines changed
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
START RequestId: XXXX Version: $LATEST
22
{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["region:us-east-1","account_id:XXXX","functionname:integration-tester-dev-process-input-traced_node10","resource:integration-tester-dev-process-input-traced_node10","cold_start:true","memorysize:1024","runtime:nodejs10.x"],"v":1}
33
{"e":XXXX,"m":"serverless.integration_test.execution","t":["function:process-input-traced","dd_lambda_layer:datadog-nodev10.XX.X"],"v":1}
4-
{"traces":[[{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"getRecordIds","resource":"getRecordIds","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node10","language":"javascript"},"metrics":{"_sample_rate":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"integration-tester-dev-process-input-traced_node10"},{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"getAPIGatewayRequestId","resource":"getAPIGatewayRequestId","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node10","api_gateway_request_id":"41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9","event_type":"APIGateway","language":"javascript"},"metrics":{"_sample_rate":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"integration-tester-dev-process-input-traced_node10"},{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"aws.lambda","resource":"integration-tester-dev-process-input-traced_node10","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node10","cold_start":"true","function_arn":"XXXX_node10","function_version":"$LATEST","request_id":"XXXX","resource_names":"integration-tester-dev-process-input-traced_node10","_dd.parent_source":"xray","api_gateway_request_id":"41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9","event_type":"APIGateway"},"metrics":{"_sample_rate":1,"_dd.agent_psr":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"aws.lambda","type":"serverless"}]]}
4+
{"traces":[[{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"getRecordIds","resource":"getRecordIds","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node10","language":"javascript"},"metrics":{"_sample_rate":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"integration-tester-dev-process-input-traced_node10"},{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"getAPIGatewayRequestId","resource":"getAPIGatewayRequestId","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node10","api_gateway_request_id":"41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9","event_type":"APIGateway","language":"javascript"},"metrics":{"_sample_rate":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"integration-tester-dev-process-input-traced_node10"},{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"aws.lambda","resource":"integration-tester-dev-process-input-traced_node10","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node10","cold_start":"true","function_arn":"XXXX_node10","function_version":"$LATEST","request_id":"XXXX","resource_names":"integration-tester-dev-process-input-traced_node10","api_gateway_request_id":"41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9","event_type":"APIGateway"},"metrics":{"_sample_rate":1,"_dd.agent_psr":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"aws.lambda","type":"serverless"}]]}
55
END RequestId: XXXX
66
REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB Init Duration: XXXX ms
77
XRAY TraceId: XXXX SegmentId: XXXX Sampled: true
88

99
START RequestId: XXXX Version: $LATEST
1010
{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["region:us-east-1","account_id:XXXX","functionname:integration-tester-dev-process-input-traced_node10","resource:integration-tester-dev-process-input-traced_node10","cold_start:false","memorysize:1024","runtime:nodejs10.x"],"v":1}
1111
{"e":XXXX,"m":"serverless.integration_test.execution","t":["function:process-input-traced","dd_lambda_layer:datadog-nodev10.XX.X"],"v":1}
12-
{"traces":[[{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"getRecordIds","resource":"getRecordIds","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node10","record_event_type":"SNS","record_ids":"95df01b4-ee98-5cb9-9903-4c221d41eb5e","language":"javascript"},"metrics":{"_sample_rate":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"integration-tester-dev-process-input-traced_node10"},{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"aws.lambda","resource":"integration-tester-dev-process-input-traced_node10","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node10","cold_start":"false","function_arn":"XXXX_node10","function_version":"$LATEST","request_id":"XXXX","resource_names":"integration-tester-dev-process-input-traced_node10","_dd.parent_source":"xray","event_type":"SNS"},"metrics":{"_sample_rate":1,"_dd.agent_psr":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"aws.lambda","type":"serverless"}]]}
12+
{"traces":[[{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"getRecordIds","resource":"getRecordIds","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node10","record_event_type":"SNS","record_ids":"95df01b4-ee98-5cb9-9903-4c221d41eb5e","language":"javascript"},"metrics":{"_sample_rate":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"integration-tester-dev-process-input-traced_node10"},{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"aws.lambda","resource":"integration-tester-dev-process-input-traced_node10","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node10","cold_start":"false","function_arn":"XXXX_node10","function_version":"$LATEST","request_id":"XXXX","resource_names":"integration-tester-dev-process-input-traced_node10","event_type":"SNS"},"metrics":{"_sample_rate":1,"_dd.agent_psr":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"aws.lambda","type":"serverless"}]]}
1313
END RequestId: XXXX
1414
REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB
1515
XRAY TraceId: XXXX SegmentId: XXXX Sampled: true
1616

1717
START RequestId: XXXX Version: $LATEST
1818
{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["region:us-east-1","account_id:XXXX","functionname:integration-tester-dev-process-input-traced_node10","resource:integration-tester-dev-process-input-traced_node10","cold_start:false","memorysize:1024","runtime:nodejs10.x"],"v":1}
1919
{"e":XXXX,"m":"serverless.integration_test.execution","t":["function:process-input-traced","dd_lambda_layer:datadog-nodev10.XX.X"],"v":1}
20-
{"traces":[[{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"getRecordIds","resource":"getRecordIds","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node10","record_event_type":"SQS","record_ids":"059f36b4-87a3-44ab-83d2-661975830a7d,2e1424d4-f796-459a-8184-9c92662be6da","language":"javascript"},"metrics":{"_sample_rate":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"integration-tester-dev-process-input-traced_node10"},{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"aws.lambda","resource":"integration-tester-dev-process-input-traced_node10","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node10","cold_start":"false","function_arn":"XXXX_node10","function_version":"$LATEST","request_id":"XXXX","resource_names":"integration-tester-dev-process-input-traced_node10","_dd.parent_source":"xray","event_type":"SQS"},"metrics":{"_sample_rate":1,"_dd.agent_psr":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"aws.lambda","type":"serverless"}]]}
20+
{"traces":[[{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"getRecordIds","resource":"getRecordIds","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node10","record_event_type":"SQS","record_ids":"059f36b4-87a3-44ab-83d2-661975830a7d,2e1424d4-f796-459a-8184-9c92662be6da","language":"javascript"},"metrics":{"_sample_rate":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"integration-tester-dev-process-input-traced_node10"},{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"aws.lambda","resource":"integration-tester-dev-process-input-traced_node10","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node10","cold_start":"false","function_arn":"XXXX_node10","function_version":"$LATEST","request_id":"XXXX","resource_names":"integration-tester-dev-process-input-traced_node10","event_type":"SQS"},"metrics":{"_sample_rate":1,"_dd.agent_psr":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"aws.lambda","type":"serverless"}]]}
2121
END RequestId: XXXX
2222
REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB
2323
XRAY TraceId: XXXX SegmentId: XXXX Sampled: true
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
START RequestId: XXXX Version: $LATEST
22
{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["region:us-east-1","account_id:XXXX","functionname:integration-tester-dev-process-input-traced_node12","resource:integration-tester-dev-process-input-traced_node12","cold_start:true","memorysize:1024","runtime:nodejs12.x"],"v":1}
33
{"e":XXXX,"m":"serverless.integration_test.execution","t":["function:process-input-traced","dd_lambda_layer:datadog-nodev12.XX.X"],"v":1}
4-
{"traces":[[{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"getRecordIds","resource":"getRecordIds","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node12","language":"javascript"},"metrics":{"_sample_rate":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"integration-tester-dev-process-input-traced_node12"},{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"getAPIGatewayRequestId","resource":"getAPIGatewayRequestId","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node12","api_gateway_request_id":"41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9","event_type":"APIGateway","language":"javascript"},"metrics":{"_sample_rate":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"integration-tester-dev-process-input-traced_node12"},{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"aws.lambda","resource":"integration-tester-dev-process-input-traced_node12","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node12","cold_start":"true","function_arn":"XXXX_node12","function_version":"$LATEST","request_id":"XXXX","resource_names":"integration-tester-dev-process-input-traced_node12","_dd.parent_source":"xray","api_gateway_request_id":"41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9","event_type":"APIGateway"},"metrics":{"_sample_rate":1,"_dd.agent_psr":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"aws.lambda","type":"serverless"}]]}
4+
{"traces":[[{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"getRecordIds","resource":"getRecordIds","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node12","language":"javascript"},"metrics":{"_sample_rate":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"integration-tester-dev-process-input-traced_node12"},{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"getAPIGatewayRequestId","resource":"getAPIGatewayRequestId","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node12","api_gateway_request_id":"41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9","event_type":"APIGateway","language":"javascript"},"metrics":{"_sample_rate":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"integration-tester-dev-process-input-traced_node12"},{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"aws.lambda","resource":"integration-tester-dev-process-input-traced_node12","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node12","cold_start":"true","function_arn":"XXXX_node12","function_version":"$LATEST","request_id":"XXXX","resource_names":"integration-tester-dev-process-input-traced_node12","api_gateway_request_id":"41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9","event_type":"APIGateway"},"metrics":{"_sample_rate":1,"_dd.agent_psr":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"aws.lambda","type":"serverless"}]]}
55
END RequestId: XXXX
66
REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB Init Duration: XXXX ms
77
XRAY TraceId: XXXX SegmentId: XXXX Sampled: true
88

99
START RequestId: XXXX Version: $LATEST
1010
{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["region:us-east-1","account_id:XXXX","functionname:integration-tester-dev-process-input-traced_node12","resource:integration-tester-dev-process-input-traced_node12","cold_start:false","memorysize:1024","runtime:nodejs12.x"],"v":1}
1111
{"e":XXXX,"m":"serverless.integration_test.execution","t":["function:process-input-traced","dd_lambda_layer:datadog-nodev12.XX.X"],"v":1}
12-
{"traces":[[{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"getRecordIds","resource":"getRecordIds","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node12","record_event_type":"SNS","record_ids":"95df01b4-ee98-5cb9-9903-4c221d41eb5e","language":"javascript"},"metrics":{"_sample_rate":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"integration-tester-dev-process-input-traced_node12"},{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"aws.lambda","resource":"integration-tester-dev-process-input-traced_node12","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node12","cold_start":"false","function_arn":"XXXX_node12","function_version":"$LATEST","request_id":"XXXX","resource_names":"integration-tester-dev-process-input-traced_node12","_dd.parent_source":"xray","event_type":"SNS"},"metrics":{"_sample_rate":1,"_dd.agent_psr":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"aws.lambda","type":"serverless"}]]}
12+
{"traces":[[{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"getRecordIds","resource":"getRecordIds","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node12","record_event_type":"SNS","record_ids":"95df01b4-ee98-5cb9-9903-4c221d41eb5e","language":"javascript"},"metrics":{"_sample_rate":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"integration-tester-dev-process-input-traced_node12"},{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"aws.lambda","resource":"integration-tester-dev-process-input-traced_node12","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node12","cold_start":"false","function_arn":"XXXX_node12","function_version":"$LATEST","request_id":"XXXX","resource_names":"integration-tester-dev-process-input-traced_node12","event_type":"SNS"},"metrics":{"_sample_rate":1,"_dd.agent_psr":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"aws.lambda","type":"serverless"}]]}
1313
END RequestId: XXXX
1414
REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB
1515
XRAY TraceId: XXXX SegmentId: XXXX Sampled: true
1616

1717
START RequestId: XXXX Version: $LATEST
1818
{"e":XXXX,"m":"aws.lambda.enhanced.invocations","t":["region:us-east-1","account_id:XXXX","functionname:integration-tester-dev-process-input-traced_node12","resource:integration-tester-dev-process-input-traced_node12","cold_start:false","memorysize:1024","runtime:nodejs12.x"],"v":1}
1919
{"e":XXXX,"m":"serverless.integration_test.execution","t":["function:process-input-traced","dd_lambda_layer:datadog-nodev12.XX.X"],"v":1}
20-
{"traces":[[{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"getRecordIds","resource":"getRecordIds","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node12","record_event_type":"SQS","record_ids":"059f36b4-87a3-44ab-83d2-661975830a7d,2e1424d4-f796-459a-8184-9c92662be6da","language":"javascript"},"metrics":{"_sample_rate":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"integration-tester-dev-process-input-traced_node12"},{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"aws.lambda","resource":"integration-tester-dev-process-input-traced_node12","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node12","cold_start":"false","function_arn":"XXXX_node12","function_version":"$LATEST","request_id":"XXXX","resource_names":"integration-tester-dev-process-input-traced_node12","_dd.parent_source":"xray","event_type":"SQS"},"metrics":{"_sample_rate":1,"_dd.agent_psr":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"aws.lambda","type":"serverless"}]]}
20+
{"traces":[[{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"getRecordIds","resource":"getRecordIds","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node12","record_event_type":"SQS","record_ids":"059f36b4-87a3-44ab-83d2-661975830a7d,2e1424d4-f796-459a-8184-9c92662be6da","language":"javascript"},"metrics":{"_sample_rate":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"integration-tester-dev-process-input-traced_node12"},{"trace_id":"XXXX","span_id":"XXXX","parent_id":"XXXX","name":"aws.lambda","resource":"integration-tester-dev-process-input-traced_node12","error":0,"meta":{"service":"integration-tester-dev-process-input-traced_node12","cold_start":"false","function_arn":"XXXX_node12","function_version":"$LATEST","request_id":"XXXX","resource_names":"integration-tester-dev-process-input-traced_node12","event_type":"SQS"},"metrics":{"_sample_rate":1,"_dd.agent_psr":1,"_sampling_priority_v1":1},"start":XXXX,"duration":XXXX,"service":"aws.lambda","type":"serverless"}]]}
2121
END RequestId: XXXX
2222
REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB
2323
XRAY TraceId: XXXX SegmentId: XXXX Sampled: true

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "datadog-lambda-js",
3-
"version": "3.26.0",
3+
"version": "3.27.0",
44
"description": "Lambda client library that supports hybrid tracing in node js",
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",

src/trace/listener.spec.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,7 @@ describe("TraceListener", () => {
150150
function_arn: "arn:aws:lambda:us-east-1:123456789101:function:my-lambda",
151151
function_version: "$LATEST",
152152
request_id: "1234",
153-
resource_names: "my-lambda",
154-
"_dd.parent_source": "xray",
153+
resource_names: "my-lambda"
155154
},
156155
type: "serverless",
157156
},

src/trace/listener.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,16 +90,19 @@ export class TraceListener {
9090
if (this.context) {
9191
logDebug("Applying lambda context to datadog traces");
9292
const functionArn = (this.context.invokedFunctionArn ?? "").toLowerCase();
93-
const tk = functionArn.split(":")
93+
const tk = functionArn.split(":");
9494
options.tags = {
9595
cold_start: didFunctionColdStart(),
9696
function_arn: tk.length > 7 ? tk.slice(0, 7).join(":") : functionArn,
9797
function_version: tk.length > 7 ? tk[7] : "$LATEST",
9898
request_id: this.context.awsRequestId,
9999
resource_names: this.context.functionName,
100100
};
101-
if (this.contextService.traceSource !== Source.DDTrace) {
102-
options.tags['_dd.parent_source'] = this.contextService.traceSource;
101+
if (
102+
(this.contextService.traceSource === Source.Xray && this.config.mergeDatadogXrayTraces) ||
103+
this.contextService.traceSource === Source.Event
104+
) {
105+
options.tags["_dd.parent_source"] = this.contextService.traceSource;
103106
}
104107
}
105108
if (this.stepFunctionContext) {

0 commit comments

Comments
 (0)