diff --git a/integration_tests/snapshots/logs/process-input-traced_node10.log b/integration_tests/snapshots/logs/process-input-traced_node10.log index 6ea0f2ab..c83ce093 100644 --- a/integration_tests/snapshots/logs/process-input-traced_node10.log +++ b/integration_tests/snapshots/logs/process-input-traced_node10.log @@ -1,7 +1,7 @@ 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 @@ -9,7 +9,7 @@ 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 @@ -17,7 +17,7 @@ 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 diff --git a/integration_tests/snapshots/logs/process-input-traced_node12.log b/integration_tests/snapshots/logs/process-input-traced_node12.log index 8aa4e510..e3a8acc2 100644 --- a/integration_tests/snapshots/logs/process-input-traced_node12.log +++ b/integration_tests/snapshots/logs/process-input-traced_node12.log @@ -1,7 +1,7 @@ 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 @@ -9,7 +9,7 @@ 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 @@ -17,7 +17,7 @@ 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 diff --git a/package.json b/package.json index 233bd7e3..12f71cea 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/src/trace/listener.spec.ts b/src/trace/listener.spec.ts index 1e2dc03c..9583d5e7 100644 --- a/src/trace/listener.spec.ts +++ b/src/trace/listener.spec.ts @@ -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", }, diff --git a/src/trace/listener.ts b/src/trace/listener.ts index aad14d00..e8ed94f4 100644 --- a/src/trace/listener.ts +++ b/src/trace/listener.ts @@ -90,7 +90,7 @@ 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, @@ -98,8 +98,11 @@ export class TraceListener { 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) {