Skip to content

Commit

Permalink
Update condition for setting dd parent source (#95)
Browse files Browse the repository at this point in the history
* Fix condition for setting dd parent source
* Set dd parent source when trace source is event
* Update integration tests
* Fix unit tests
* Update version
  • Loading branch information
hghotra authored Aug 15, 2020
1 parent 5ffef30 commit 8ab3c90
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 12 deletions.
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
START RequestId: XXXX Version: $LATEST
{"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}
{"e":XXXX,"m":"serverless.integration_test.execution","t":["function:process-input-traced","dd_lambda_layer:datadog-nodev10.XX.X"],"v":1}
{"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"}]]}
{"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"}]]}
END RequestId: XXXX
REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB Init Duration: XXXX ms
XRAY TraceId: XXXX SegmentId: XXXX Sampled: true

START RequestId: XXXX Version: $LATEST
{"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}
{"e":XXXX,"m":"serverless.integration_test.execution","t":["function:process-input-traced","dd_lambda_layer:datadog-nodev10.XX.X"],"v":1}
{"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"}]]}
{"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"}]]}
END RequestId: XXXX
REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB
XRAY TraceId: XXXX SegmentId: XXXX Sampled: true

START RequestId: XXXX Version: $LATEST
{"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}
{"e":XXXX,"m":"serverless.integration_test.execution","t":["function:process-input-traced","dd_lambda_layer:datadog-nodev10.XX.X"],"v":1}
{"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"}]]}
{"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"}]]}
END RequestId: XXXX
REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB
XRAY TraceId: XXXX SegmentId: XXXX Sampled: true
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
START RequestId: XXXX Version: $LATEST
{"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}
{"e":XXXX,"m":"serverless.integration_test.execution","t":["function:process-input-traced","dd_lambda_layer:datadog-nodev12.XX.X"],"v":1}
{"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"}]]}
{"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"}]]}
END RequestId: XXXX
REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB Init Duration: XXXX ms
XRAY TraceId: XXXX SegmentId: XXXX Sampled: true

START RequestId: XXXX Version: $LATEST
{"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}
{"e":XXXX,"m":"serverless.integration_test.execution","t":["function:process-input-traced","dd_lambda_layer:datadog-nodev12.XX.X"],"v":1}
{"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"}]]}
{"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"}]]}
END RequestId: XXXX
REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB
XRAY TraceId: XXXX SegmentId: XXXX Sampled: true

START RequestId: XXXX Version: $LATEST
{"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}
{"e":XXXX,"m":"serverless.integration_test.execution","t":["function:process-input-traced","dd_lambda_layer:datadog-nodev12.XX.X"],"v":1}
{"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"}]]}
{"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"}]]}
END RequestId: XXXX
REPORT RequestId: XXXX Duration: XXXX ms Billed Duration: XXXX ms Memory Size: 1024 MB Max Memory Used: XXXX MB
XRAY TraceId: XXXX SegmentId: XXXX Sampled: true
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "datadog-lambda-js",
"version": "3.26.0",
"version": "3.27.0",
"description": "Lambda client library that supports hybrid tracing in node js",
"main": "dist/index.js",
"types": "dist/index.d.ts",
Expand Down
3 changes: 1 addition & 2 deletions src/trace/listener.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -150,8 +150,7 @@ describe("TraceListener", () => {
function_arn: "arn:aws:lambda:us-east-1:123456789101:function:my-lambda",
function_version: "$LATEST",
request_id: "1234",
resource_names: "my-lambda",
"_dd.parent_source": "xray",
resource_names: "my-lambda"
},
type: "serverless",
},
Expand Down
9 changes: 6 additions & 3 deletions src/trace/listener.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,16 +90,19 @@ export class TraceListener {
if (this.context) {
logDebug("Applying lambda context to datadog traces");
const functionArn = (this.context.invokedFunctionArn ?? "").toLowerCase();
const tk = functionArn.split(":")
const tk = functionArn.split(":");
options.tags = {
cold_start: didFunctionColdStart(),
function_arn: tk.length > 7 ? tk.slice(0, 7).join(":") : functionArn,
function_version: tk.length > 7 ? tk[7] : "$LATEST",
request_id: this.context.awsRequestId,
resource_names: this.context.functionName,
};
if (this.contextService.traceSource !== Source.DDTrace) {
options.tags['_dd.parent_source'] = this.contextService.traceSource;
if (
(this.contextService.traceSource === Source.Xray && this.config.mergeDatadogXrayTraces) ||
this.contextService.traceSource === Source.Event
) {
options.tags["_dd.parent_source"] = this.contextService.traceSource;
}
}
if (this.stepFunctionContext) {
Expand Down

0 comments on commit 8ab3c90

Please sign in to comment.