diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 245b310b..48675762 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -44,7 +44,7 @@ jobs: strategy: max-parallel: 4 matrix: - node-version: [16.14, 18.12, 20.9] + node-version: [16.14, 18.12, 20.9, 22.11] steps: - name: Checkout uses: actions/checkout@v3 @@ -67,7 +67,7 @@ jobs: restore-keys: | ${{ runner.os }}-yarn- - name: Install NodeGYP - if: matrix.node-version == '20.9' + if: matrix.node-version == '20.9' || matrix.node-version == '22.11' run: yarn global add node-gyp - name: Install dependencies diff --git a/.gitlab/datasources/runtimes.yaml b/.gitlab/datasources/runtimes.yaml index b15e029f..4e5b96ec 100644 --- a/.gitlab/datasources/runtimes.yaml +++ b/.gitlab/datasources/runtimes.yaml @@ -8,3 +8,6 @@ runtimes: - name: "node20" node_version: "20.9" node_major_version: "20" + - name: "node22" + node_version: "22.11" + node_major_version: "22" diff --git a/.gitlab/scripts/publish_layers.sh b/.gitlab/scripts/publish_layers.sh index 3387e97f..940187e7 100755 --- a/.gitlab/scripts/publish_layers.sh +++ b/.gitlab/scripts/publish_layers.sh @@ -10,10 +10,10 @@ set -e # Available runtimes: https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html -AWS_CLI_NODE_VERSIONS=("nodejs16.x" "nodejs18.x" "nodejs20.x") -LAYER_PATHS=(".layers/datadog_lambda_node16.14.zip" ".layers/datadog_lambda_node18.12.zip" ".layers/datadog_lambda_node20.9.zip") -LAYERS=("Datadog-Node16-x" "Datadog-Node18-x" "Datadog-Node20-x") -NODE_VERSIONS=("16.14" "18.12" "20.9") +AWS_CLI_NODE_VERSIONS=("nodejs16.x" "nodejs18.x" "nodejs20.x" "nodejs22.x") +LAYER_PATHS=(".layers/datadog_lambda_node16.14.zip" ".layers/datadog_lambda_node18.12.zip" ".layers/datadog_lambda_node20.9.zip" ".layers/datadog_lambda_node22.11.zip") +LAYERS=("Datadog-Node16-x" "Datadog-Node18-x" "Datadog-Node20-x" "Datadog-Node22-x") +NODE_VERSIONS=("16.14" "18.12" "20.9" "22.11") STAGES=('prod', 'sandbox', 'staging') printf "Starting script...\n\n" diff --git a/integration_tests/snapshots/logs/async-metrics_node22.log b/integration_tests/snapshots/logs/async-metrics_node22.log new file mode 100644 index 00000000..0a1e5518 --- /dev/null +++ b/integration_tests/snapshots/logs/async-metrics_node22.log @@ -0,0 +1,125 @@ + +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-js-XXXX-async-metrics_node22", + "resource:integration-tests-js-XXXX-async-metrics_node22", + "memorysize:1024", + "cold_start:true", + "datadog_lambda:vX.X.X", + "runtime:nodejs22.x" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "serverless.integration_test.outside_handler", + "t": [ + "tagkey:tagvalue", + "eventsource:outside_handler", + "dd_lambda_layer:datadog-nodev22.XX.X" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "serverless.integration_test.execution", + "t": [ + "tagkey:tagvalue", + "eventsource:APIGateway", + "dd_lambda_layer:datadog-nodev22.XX.X" + ], + "v": 1 +} +XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed APIGateway request +END Duration: XXXX ms (init: 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_node22", + "resource:integration-tests-js-XXXX-async-metrics_node22", + "memorysize:1024", + "cold_start:false", + "datadog_lambda:vX.X.X", + "runtime:nodejs22.x" + ], + "v": 1 +} +XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed SNS request +{ + "e": XXXX, + "m": "serverless.integration_test.records_processed", + "t": [ + "tagkey:tagvalue", + "eventsource:SNS", + "dd_lambda_layer:datadog-nodev22.XX.X" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "serverless.integration_test.execution", + "t": [ + "tagkey:tagvalue", + "eventsource:SNS", + "dd_lambda_layer:datadog-nodev22.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_node22", + "resource:integration-tests-js-XXXX-async-metrics_node22", + "memorysize:1024", + "cold_start:false", + "datadog_lambda:vX.X.X", + "runtime:nodejs22.x" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "serverless.integration_test.records_processed", + "t": [ + "tagkey:tagvalue", + "eventsource:SQS", + "dd_lambda_layer:datadog-nodev22.XX.X" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "serverless.integration_test.records_processed", + "t": [ + "tagkey:tagvalue", + "eventsource:SQS", + "dd_lambda_layer:datadog-nodev22.XX.X" + ], + "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.execution", + "t": [ + "tagkey:tagvalue", + "eventsource:SQS", + "dd_lambda_layer:datadog-nodev22.XX.X" + ], + "v": 1 +} +END Duration: XXXX ms Memory Used: XXXX MB diff --git a/integration_tests/snapshots/logs/esm_node22.log b/integration_tests/snapshots/logs/esm_node22.log new file mode 100644 index 00000000..938b073d --- /dev/null +++ b/integration_tests/snapshots/logs/esm_node22.log @@ -0,0 +1,52 @@ + +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-js-XXXX-esm_node22", + "resource:integration-tests-js-XXXX-esm_node22", + "memorysize:1024", + "cold_start:true", + "datadog_lambda:vX.X.X", + "runtime:nodejs22.x" + ], + "v": 1 +} +END Duration: XXXX ms (init: 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-esm_node22", + "resource:integration-tests-js-XXXX-esm_node22", + "memorysize:1024", + "cold_start:false", + "datadog_lambda:vX.X.X", + "runtime:nodejs22.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-esm_node22", + "resource:integration-tests-js-XXXX-esm_node22", + "memorysize:1024", + "cold_start:false", + "datadog_lambda:vX.X.X", + "runtime:nodejs22.x" + ], + "v": 1 +} +END Duration: XXXX ms Memory Used: XXXX MB diff --git a/integration_tests/snapshots/logs/http-requests_node22.log b/integration_tests/snapshots/logs/http-requests_node22.log new file mode 100644 index 00000000..64226638 --- /dev/null +++ b/integration_tests/snapshots/logs/http-requests_node22.log @@ -0,0 +1,64 @@ + +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-js-XXXX-http-requests_node22", + "resource:integration-tests-js-XXXX-http-requests_node22", + "memorysize:1024", + "cold_start:true", + "datadog_lambda:vX.X.X", + "runtime:nodejs22.x" + ], + "v": 1 +} +HTTP GET https://ip-ranges.datadoghq.com/ TraceHeaders: ["x-datadog-parent-id:XXXX","x-datadog-sampling-priority:-1","x-datadog-trace-id:XXXX"] +HTTP GET https://ip-ranges.datadoghq.eu/ TraceHeaders: ["x-datadog-parent-id:XXXX","x-datadog-sampling-priority:-1","x-datadog-trace-id:XXXX"] +XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Snapshot test http requests successfully made to URLs: https://ip-ranges.datadoghq.com,https://ip-ranges.datadoghq.eu +HTTP POST https://api.datadoghq.com/api/v1/distribution_points?api_key=XXXX TraceHeaders: ["x-datadog-parent-id:XXXX","x-datadog-sampling-priority:-1","x-datadog-trace-id:XXXX"] +END Duration: XXXX ms (init: 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-http-requests_node22", + "resource:integration-tests-js-XXXX-http-requests_node22", + "memorysize:1024", + "cold_start:false", + "datadog_lambda:vX.X.X", + "runtime:nodejs22.x" + ], + "v": 1 +} +HTTP GET https://ip-ranges.datadoghq.com/ TraceHeaders: ["x-datadog-parent-id:XXXX","x-datadog-sampling-priority:-1","x-datadog-trace-id:XXXX"] +HTTP GET https://ip-ranges.datadoghq.eu/ TraceHeaders: ["x-datadog-parent-id:XXXX","x-datadog-sampling-priority:-1","x-datadog-trace-id:XXXX"] +XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Snapshot test http requests successfully made to URLs: https://ip-ranges.datadoghq.com,https://ip-ranges.datadoghq.eu +HTTP POST https://api.datadoghq.com/api/v1/distribution_points?api_key=XXXX TraceHeaders: ["x-datadog-parent-id:XXXX","x-datadog-sampling-priority:-1","x-datadog-trace-id:XXXX"] +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-http-requests_node22", + "resource:integration-tests-js-XXXX-http-requests_node22", + "memorysize:1024", + "cold_start:false", + "datadog_lambda:vX.X.X", + "runtime:nodejs22.x" + ], + "v": 1 +} +HTTP GET https://ip-ranges.datadoghq.com/ TraceHeaders: ["x-datadog-parent-id:XXXX","x-datadog-sampling-priority:-1","x-datadog-trace-id:XXXX"] +HTTP GET https://ip-ranges.datadoghq.eu/ TraceHeaders: ["x-datadog-parent-id:XXXX","x-datadog-sampling-priority:-1","x-datadog-trace-id:XXXX"] +XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Snapshot test http requests successfully made to URLs: https://ip-ranges.datadoghq.com,https://ip-ranges.datadoghq.eu +HTTP POST https://api.datadoghq.com/api/v1/distribution_points?api_key=XXXX TraceHeaders: ["x-datadog-parent-id:XXXX","x-datadog-sampling-priority:-1","x-datadog-trace-id:XXXX"] +END Duration: XXXX ms Memory Used: XXXX MB diff --git a/integration_tests/snapshots/logs/process-input-traced_node16.log b/integration_tests/snapshots/logs/process-input-traced_node16.log index 6c2c2151..6fa8b1a9 100644 --- a/integration_tests/snapshots/logs/process-input-traced_node16.log +++ b/integration_tests/snapshots/logs/process-input-traced_node16.log @@ -8,8 +8,8 @@ START "account_id:XXXX", "functionname:integration-tests-js-XXXX-process-input-traced_node16", "resource:integration-tests-js-XXXX-process-input-traced_node16", - "cold_start:true", "memorysize:1024", + "cold_start:true", "datadog_lambda:vX.X.X", "runtime:nodejs16.x" ], @@ -38,7 +38,6 @@ START "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedApiGatewayServiceName", - "version": "1.0.0", "runtime-id":"XXXX", "operation_name": "aws.apigateway", "http.url": "undefined", @@ -48,7 +47,6 @@ START "_inferred_span.tag_source": "self", "_inferred_span.synchronicity": "sync", "http.method": "GET", - "http.route":"/{proxy+}", "stage": "test", "http.status_code": "200", "_dd.base_service": "integration-tests-js-XXXX-process-input-traced_node16", @@ -86,6 +84,7 @@ START "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "arn:aws:apigateway:eu-west-1::/restapis/wt6mne2s9k/stages/test", "http.method": "GET", + "http.route": "/{proxy+}", "api_gateway_request_id": "41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9", "event_type": "APIGateway", "http.status_code": "200", @@ -165,8 +164,8 @@ START "account_id:XXXX", "functionname:integration-tests-js-XXXX-process-input-traced_node16", "resource:integration-tests-js-XXXX-process-input-traced_node16", - "cold_start:false", "memorysize:1024", + "cold_start:false", "datadog_lambda:vX.X.X", "runtime:nodejs16.x" ], @@ -195,7 +194,6 @@ START "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedSnsServiceName", - "version": "1.0.0", "runtime-id":"XXXX", "operation_name": "aws.sns", "resource_names": "sns-lambda", @@ -296,8 +294,8 @@ START "account_id:XXXX", "functionname:integration-tests-js-XXXX-process-input-traced_node16", "resource:integration-tests-js-XXXX-process-input-traced_node16", - "cold_start:false", "memorysize:1024", + "cold_start:false", "datadog_lambda:vX.X.X", "runtime:nodejs16.x" ], @@ -326,7 +324,6 @@ START "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedSqsServiceName", - "version": "1.0.0", "runtime-id":"XXXX", "operation_name": "aws.sqs", "resource_names": "my-queue", diff --git a/integration_tests/snapshots/logs/process-input-traced_node18.log b/integration_tests/snapshots/logs/process-input-traced_node18.log index f38d929c..02bd1a20 100644 --- a/integration_tests/snapshots/logs/process-input-traced_node18.log +++ b/integration_tests/snapshots/logs/process-input-traced_node18.log @@ -8,8 +8,8 @@ START "account_id:XXXX", "functionname:integration-tests-js-XXXX-process-input-traced_node18", "resource:integration-tests-js-XXXX-process-input-traced_node18", - "cold_start:true", "memorysize:1024", + "cold_start:true", "datadog_lambda:vX.X.X", "runtime:nodejs18.x" ], @@ -38,7 +38,6 @@ START "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedApiGatewayServiceName", - "version": "1.0.0", "runtime-id":"XXXX", "operation_name": "aws.apigateway", "http.url": "undefined", @@ -48,7 +47,6 @@ START "_inferred_span.tag_source": "self", "_inferred_span.synchronicity": "sync", "http.method": "GET", - "http.route":"/{proxy+}", "stage": "test", "http.status_code": "200", "_dd.base_service": "integration-tests-js-XXXX-process-input-traced_node18", @@ -86,6 +84,7 @@ START "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "arn:aws:apigateway:eu-west-1::/restapis/wt6mne2s9k/stages/test", "http.method": "GET", + "http.route": "/{proxy+}", "api_gateway_request_id": "41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9", "event_type": "APIGateway", "http.status_code": "200", @@ -165,8 +164,8 @@ START "account_id:XXXX", "functionname:integration-tests-js-XXXX-process-input-traced_node18", "resource:integration-tests-js-XXXX-process-input-traced_node18", - "cold_start:false", "memorysize:1024", + "cold_start:false", "datadog_lambda:vX.X.X", "runtime:nodejs18.x" ], @@ -195,7 +194,6 @@ START "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedSnsServiceName", - "version": "1.0.0", "runtime-id":"XXXX", "operation_name": "aws.sns", "resource_names": "sns-lambda", @@ -296,8 +294,8 @@ START "account_id:XXXX", "functionname:integration-tests-js-XXXX-process-input-traced_node18", "resource:integration-tests-js-XXXX-process-input-traced_node18", - "cold_start:false", "memorysize:1024", + "cold_start:false", "datadog_lambda:vX.X.X", "runtime:nodejs18.x" ], @@ -326,7 +324,6 @@ START "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedSqsServiceName", - "version": "1.0.0", "runtime-id":"XXXX", "operation_name": "aws.sqs", "resource_names": "my-queue", diff --git a/integration_tests/snapshots/logs/process-input-traced_node20.log b/integration_tests/snapshots/logs/process-input-traced_node20.log index dfc45ae7..02917a71 100644 --- a/integration_tests/snapshots/logs/process-input-traced_node20.log +++ b/integration_tests/snapshots/logs/process-input-traced_node20.log @@ -8,8 +8,8 @@ START "account_id:XXXX", "functionname:integration-tests-js-XXXX-process-input-traced_node20", "resource:integration-tests-js-XXXX-process-input-traced_node20", - "cold_start:true", "memorysize:1024", + "cold_start:true", "datadog_lambda:vX.X.X", "runtime:nodejs20.x" ], @@ -38,7 +38,6 @@ START "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedApiGatewayServiceName", - "version": "1.0.0", "runtime-id":"XXXX", "operation_name": "aws.apigateway", "http.url": "undefined", @@ -48,7 +47,6 @@ START "_inferred_span.tag_source": "self", "_inferred_span.synchronicity": "sync", "http.method": "GET", - "http.route":"/{proxy+}", "stage": "test", "http.status_code": "200", "_dd.base_service": "integration-tests-js-XXXX-process-input-traced_node20", @@ -86,6 +84,7 @@ START "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "arn:aws:apigateway:eu-west-1::/restapis/wt6mne2s9k/stages/test", "http.method": "GET", + "http.route": "/{proxy+}", "api_gateway_request_id": "41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9", "event_type": "APIGateway", "http.status_code": "200", @@ -165,8 +164,8 @@ START "account_id:XXXX", "functionname:integration-tests-js-XXXX-process-input-traced_node20", "resource:integration-tests-js-XXXX-process-input-traced_node20", - "cold_start:false", "memorysize:1024", + "cold_start:false", "datadog_lambda:vX.X.X", "runtime:nodejs20.x" ], @@ -195,7 +194,6 @@ START "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedSnsServiceName", - "version": "1.0.0", "runtime-id":"XXXX", "operation_name": "aws.sns", "resource_names": "sns-lambda", @@ -296,8 +294,8 @@ START "account_id:XXXX", "functionname:integration-tests-js-XXXX-process-input-traced_node20", "resource:integration-tests-js-XXXX-process-input-traced_node20", - "cold_start:false", "memorysize:1024", + "cold_start:false", "datadog_lambda:vX.X.X", "runtime:nodejs20.x" ], @@ -326,7 +324,6 @@ START "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedSqsServiceName", - "version": "1.0.0", "runtime-id":"XXXX", "operation_name": "aws.sqs", "resource_names": "my-queue", diff --git a/integration_tests/snapshots/logs/process-input-traced_node22.log b/integration_tests/snapshots/logs/process-input-traced_node22.log new file mode 100644 index 00000000..b20c0dc4 --- /dev/null +++ b/integration_tests/snapshots/logs/process-input-traced_node22.log @@ -0,0 +1,416 @@ + +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-js-XXXX-process-input-traced_node22", + "resource:integration-tests-js-XXXX-process-input-traced_node22", + "memorysize:1024", + "cold_start:true", + "datadog_lambda:vX.X.X", + "runtime:nodejs22.x" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "serverless.integration_test.execution", + "t": [ + "function:process-input-traced", + "dd_lambda_layer:datadog-nodev22.XX.X" + ], + "v": 1 +} +{ + "traces": [ + [ + { + "trace_id":"XXXX", + "span_id":"XXXX", + "parent_id":"XXXX", + "name": "aws.apigateway", + "resource": "GET /{proxy+}", + "error": 0, + "meta": { + "_dd.p.tid": "XXXX", + "_dd.p.dm": "-0", + "service": "remappedApiGatewayServiceName", + "runtime-id":"XXXX", + "operation_name": "aws.apigateway", + "http.url": "undefined", + "resource_names": "GET /{proxy+}", + "request_id":"XXXX", + "apiid":"XXXX", + "_inferred_span.tag_source": "self", + "_inferred_span.synchronicity": "sync", + "http.method": "GET", + "stage": "test", + "http.status_code": "200", + "_dd.base_service": "integration-tests-js-XXXX-process-input-traced_node22", + "language": "javascript" + }, + "metrics": { + "_dd.agent_psr": 1, + "_dd.top_level": 1, + "process_id":XXXX, + "_sampling_priority_v1": 1 + }, + "start":XXXX, + "duration":XXXX, + "links": [], + "service": "remappedApiGatewayServiceName", + "type": "http" + }, + { + "trace_id":"XXXX", + "span_id":"XXXX", + "parent_id":"XXXX", + "name": "aws.lambda", + "resource": "integration-tests-js-XXXX-process-input-traced_node22", + "error": 0, + "meta": { + "service": "integration-tests-js-XXXX-process-input-traced_node22", + "version": "1.0.0", + "runtime-id":"XXXX", + "function_arn":"XXXX_node22", + "function_version": "$LATEST", + "request_id":"XXXX", + "resource_names": "integration-tests-js-XXXX-process-input-traced_node22", + "functionname": "integration-tests-js-XXXX-process-input-traced_node22", + "datadog_lambda":"XXXX", + "function_trigger.event_source": "api-gateway", + "function_trigger.event_source_arn": "arn:aws:apigateway:eu-west-1::/restapis/wt6mne2s9k/stages/test", + "http.method": "GET", + "http.route": "/{proxy+}", + "api_gateway_request_id": "41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9", + "event_type": "APIGateway", + "http.status_code": "200", + "_dd.base_service": "integration-tests-js-XXXX-process-input-traced_node22", + "language": "javascript" + }, + "metrics": { + "cold_start": 1, + "_dd.measured": 1, + "process_id":XXXX, + "_sampling_priority_v1": 1 + }, + "start":XXXX, + "duration":XXXX, + "links": [], + "service": "aws.lambda", + "type": "serverless" + }, + { + "trace_id":"XXXX", + "span_id":"XXXX", + "parent_id":"XXXX", + "name": "getRecordIds", + "resource": "getRecordIds", + "error": 0, + "meta": { + "service": "integration-tests-js-XXXX-process-input-traced_node22", + "version": "1.0.0", + "runtime-id":"XXXX", + "language": "javascript" + }, + "metrics": { + "_dd.measured": 1, + "process_id":XXXX, + "_sampling_priority_v1": 1 + }, + "start":XXXX, + "duration":XXXX, + "links": [], + "service": "integration-tests-js-XXXX-process-input-traced_node22" + }, + { + "trace_id":"XXXX", + "span_id":"XXXX", + "parent_id":"XXXX", + "name": "getAPIGatewayRequestId", + "resource": "getAPIGatewayRequestId", + "error": 0, + "meta": { + "service": "integration-tests-js-XXXX-process-input-traced_node22", + "version": "1.0.0", + "runtime-id":"XXXX", + "api_gateway_request_id": "41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9", + "event_type": "APIGateway", + "language": "javascript" + }, + "metrics": { + "_dd.measured": 1, + "process_id":XXXX, + "_sampling_priority_v1": 1 + }, + "start":XXXX, + "duration":XXXX, + "links": [], + "service": "integration-tests-js-XXXX-process-input-traced_node22" + } + ] + ] +} +END Duration: XXXX ms (init: 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-process-input-traced_node22", + "resource:integration-tests-js-XXXX-process-input-traced_node22", + "memorysize:1024", + "cold_start:false", + "datadog_lambda:vX.X.X", + "runtime:nodejs22.x" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "serverless.integration_test.execution", + "t": [ + "function:process-input-traced", + "dd_lambda_layer:datadog-nodev22.XX.X" + ], + "v": 1 +} +{ + "traces": [ + [ + { + "trace_id":"XXXX", + "span_id":"XXXX", + "parent_id":"XXXX", + "name": "aws.sns", + "resource": "sns-lambda", + "error": 0, + "meta": { + "_dd.p.tid": "XXXX", + "_dd.p.dm": "-0", + "service": "remappedSnsServiceName", + "runtime-id":"XXXX", + "operation_name": "aws.sns", + "resource_names": "sns-lambda", + "request_id":"XXXX", + "_inferred_span.tag_source": "self", + "_inferred_span.synchronicity": "async", + "type": "Notification", + "subject": "TestInvoke", + "message_id": "95df01b4-ee98-5cb9-9903-4c221d41eb5e", + "topicname": "sns-lambda", + "topic_arn": "arn:aws:sns:us-east-2:123456789012:sns-lambda", + "event_subscription_arn": "arn:aws:sns:us-east-2:123456789012:sns-lambda:21be56ed-a058-49f5-8c98-aedd2564c486", + "_dd.base_service": "integration-tests-js-XXXX-process-input-traced_node22", + "language": "javascript" + }, + "metrics": { + "_dd.agent_psr": 1, + "_dd.top_level": 1, + "process_id":XXXX, + "_sampling_priority_v1": 1 + }, + "start":XXXX, + "duration":XXXX, + "links": [], + "service": "remappedSnsServiceName", + "type": "sns" + }, + { + "trace_id":"XXXX", + "span_id":"XXXX", + "parent_id":"XXXX", + "name": "aws.lambda", + "resource": "integration-tests-js-XXXX-process-input-traced_node22", + "error": 0, + "meta": { + "service": "integration-tests-js-XXXX-process-input-traced_node22", + "version": "1.0.0", + "runtime-id":"XXXX", + "function_arn":"XXXX_node22", + "function_version": "$LATEST", + "request_id":"XXXX", + "resource_names": "integration-tests-js-XXXX-process-input-traced_node22", + "functionname": "integration-tests-js-XXXX-process-input-traced_node22", + "datadog_lambda":"XXXX", + "function_trigger.event_source": "sns", + "function_trigger.event_source_arn": "arn:aws:sns:us-east-2:123456789012:sns-lambda", + "event_type": "SNS", + "_dd.base_service": "integration-tests-js-XXXX-process-input-traced_node22", + "language": "javascript" + }, + "metrics": { + "cold_start": 0, + "_dd.measured": 1, + "process_id":XXXX, + "_sampling_priority_v1": 1 + }, + "start":XXXX, + "duration":XXXX, + "links": [], + "service": "aws.lambda", + "type": "serverless" + }, + { + "trace_id":"XXXX", + "span_id":"XXXX", + "parent_id":"XXXX", + "name": "getRecordIds", + "resource": "getRecordIds", + "error": 0, + "meta": { + "service": "integration-tests-js-XXXX-process-input-traced_node22", + "version": "1.0.0", + "runtime-id":"XXXX", + "record_event_type": "SNS", + "record_ids":"XXXX", + "language": "javascript" + }, + "metrics": { + "_dd.measured": 1, + "process_id":XXXX, + "_sampling_priority_v1": 1 + }, + "start":XXXX, + "duration":XXXX, + "links": [], + "service": "integration-tests-js-XXXX-process-input-traced_node22" + } + ] + ] +} +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-process-input-traced_node22", + "resource:integration-tests-js-XXXX-process-input-traced_node22", + "memorysize:1024", + "cold_start:false", + "datadog_lambda:vX.X.X", + "runtime:nodejs22.x" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "serverless.integration_test.execution", + "t": [ + "function:process-input-traced", + "dd_lambda_layer:datadog-nodev22.XX.X" + ], + "v": 1 +} +{ + "traces": [ + [ + { + "trace_id":"XXXX", + "span_id":"XXXX", + "parent_id":"XXXX", + "name": "aws.sqs", + "resource": "my-queue", + "error": 0, + "meta": { + "_dd.p.tid": "XXXX", + "_dd.p.dm": "-0", + "service": "remappedSqsServiceName", + "runtime-id":"XXXX", + "operation_name": "aws.sqs", + "resource_names": "my-queue", + "request_id":"XXXX", + "_inferred_span.tag_source": "self", + "_inferred_span.synchronicity": "async", + "queuename": "my-queue", + "event_source_arn": "arn:aws:sqs:us-east-2:123456789012:my-queue", + "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "_dd.base_service": "integration-tests-js-XXXX-process-input-traced_node22", + "language": "javascript" + }, + "metrics": { + "_dd.agent_psr": 1, + "_dd.top_level": 1, + "retry_count": 1, + "process_id":XXXX, + "_sampling_priority_v1": 1 + }, + "start":XXXX, + "duration":XXXX, + "links": [], + "service": "remappedSqsServiceName", + "type": "web" + }, + { + "trace_id":"XXXX", + "span_id":"XXXX", + "parent_id":"XXXX", + "name": "aws.lambda", + "resource": "integration-tests-js-XXXX-process-input-traced_node22", + "error": 0, + "meta": { + "service": "integration-tests-js-XXXX-process-input-traced_node22", + "version": "1.0.0", + "runtime-id":"XXXX", + "function_arn":"XXXX_node22", + "function_version": "$LATEST", + "request_id":"XXXX", + "resource_names": "integration-tests-js-XXXX-process-input-traced_node22", + "functionname": "integration-tests-js-XXXX-process-input-traced_node22", + "datadog_lambda":"XXXX", + "function_trigger.event_source": "sqs", + "function_trigger.event_source_arn": "arn:aws:sqs:us-east-2:123456789012:my-queue", + "event_type": "SQS", + "_dd.base_service": "integration-tests-js-XXXX-process-input-traced_node22", + "language": "javascript" + }, + "metrics": { + "cold_start": 0, + "_dd.measured": 1, + "process_id":XXXX, + "_sampling_priority_v1": 1 + }, + "start":XXXX, + "duration":XXXX, + "links": [], + "service": "aws.lambda", + "type": "serverless" + }, + { + "trace_id":"XXXX", + "span_id":"XXXX", + "parent_id":"XXXX", + "name": "getRecordIds", + "resource": "getRecordIds", + "error": 0, + "meta": { + "service": "integration-tests-js-XXXX-process-input-traced_node22", + "version": "1.0.0", + "runtime-id":"XXXX", + "record_event_type": "SQS", + "record_ids":"XXXX,2e1424d4-f796-459a-8184-9c92662be6da", + "language": "javascript" + }, + "metrics": { + "_dd.measured": 1, + "process_id":XXXX, + "_sampling_priority_v1": 1 + }, + "start":XXXX, + "duration":XXXX, + "links": [], + "service": "integration-tests-js-XXXX-process-input-traced_node22" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB diff --git a/integration_tests/snapshots/logs/status-code-500s_node16.log b/integration_tests/snapshots/logs/status-code-500s_node16.log index 79f4a0c8..04e0a8bb 100644 --- a/integration_tests/snapshots/logs/status-code-500s_node16.log +++ b/integration_tests/snapshots/logs/status-code-500s_node16.log @@ -8,8 +8,8 @@ START "account_id:XXXX", "functionname:integration-tests-js-XXXX-status-code-500s_node16", "resource:integration-tests-js-XXXX-status-code-500s_node16", - "cold_start:true", "memorysize:1024", + "cold_start:true", "datadog_lambda:vX.X.X", "runtime:nodejs16.x" ], @@ -23,8 +23,8 @@ START "account_id:XXXX", "functionname:integration-tests-js-XXXX-status-code-500s_node16", "resource:integration-tests-js-XXXX-status-code-500s_node16", - "cold_start:true", "memorysize:1024", + "cold_start:true", "datadog_lambda:vX.X.X", "runtime:nodejs16.x" ], @@ -44,7 +44,6 @@ START "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedApiGatewayServiceName", - "version": "1.0.0", "runtime-id":"XXXX", "operation_name": "aws.apigateway", "http.url": "undefined", @@ -54,7 +53,6 @@ START "_inferred_span.tag_source": "self", "_inferred_span.synchronicity": "sync", "http.method": "GET", - "http.route":"/{proxy+}", "stage": "test", "http.status_code": "500", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node16", @@ -92,6 +90,7 @@ START "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "arn:aws:apigateway:eu-west-1::/restapis/wt6mne2s9k/stages/test", "http.method": "GET", + "http.route": "/{proxy+}", "http.status_code": "500", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node16", "language": "javascript" @@ -121,8 +120,8 @@ START "account_id:XXXX", "functionname:integration-tests-js-XXXX-status-code-500s_node16", "resource:integration-tests-js-XXXX-status-code-500s_node16", - "cold_start:false", "memorysize:1024", + "cold_start:false", "datadog_lambda:vX.X.X", "runtime:nodejs16.x" ], @@ -142,7 +141,6 @@ START "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedSnsServiceName", - "version": "1.0.0", "runtime-id":"XXXX", "operation_name": "aws.sns", "resource_names": "sns-lambda", @@ -217,8 +215,8 @@ START "account_id:XXXX", "functionname:integration-tests-js-XXXX-status-code-500s_node16", "resource:integration-tests-js-XXXX-status-code-500s_node16", - "cold_start:false", "memorysize:1024", + "cold_start:false", "datadog_lambda:vX.X.X", "runtime:nodejs16.x" ], @@ -238,7 +236,6 @@ START "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedSqsServiceName", - "version": "1.0.0", "runtime-id":"XXXX", "operation_name": "aws.sqs", "resource_names": "my-queue", diff --git a/integration_tests/snapshots/logs/status-code-500s_node18.log b/integration_tests/snapshots/logs/status-code-500s_node18.log index 7248a341..541b297f 100644 --- a/integration_tests/snapshots/logs/status-code-500s_node18.log +++ b/integration_tests/snapshots/logs/status-code-500s_node18.log @@ -8,8 +8,8 @@ START "account_id:XXXX", "functionname:integration-tests-js-XXXX-status-code-500s_node18", "resource:integration-tests-js-XXXX-status-code-500s_node18", - "cold_start:true", "memorysize:1024", + "cold_start:true", "datadog_lambda:vX.X.X", "runtime:nodejs18.x" ], @@ -23,8 +23,8 @@ START "account_id:XXXX", "functionname:integration-tests-js-XXXX-status-code-500s_node18", "resource:integration-tests-js-XXXX-status-code-500s_node18", - "cold_start:true", "memorysize:1024", + "cold_start:true", "datadog_lambda:vX.X.X", "runtime:nodejs18.x" ], @@ -44,7 +44,6 @@ START "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedApiGatewayServiceName", - "version": "1.0.0", "runtime-id":"XXXX", "operation_name": "aws.apigateway", "http.url": "undefined", @@ -54,7 +53,6 @@ START "_inferred_span.tag_source": "self", "_inferred_span.synchronicity": "sync", "http.method": "GET", - "http.route":"/{proxy+}", "stage": "test", "http.status_code": "500", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node18", @@ -92,6 +90,7 @@ START "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "arn:aws:apigateway:eu-west-1::/restapis/wt6mne2s9k/stages/test", "http.method": "GET", + "http.route": "/{proxy+}", "http.status_code": "500", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node18", "language": "javascript" @@ -121,8 +120,8 @@ START "account_id:XXXX", "functionname:integration-tests-js-XXXX-status-code-500s_node18", "resource:integration-tests-js-XXXX-status-code-500s_node18", - "cold_start:false", "memorysize:1024", + "cold_start:false", "datadog_lambda:vX.X.X", "runtime:nodejs18.x" ], @@ -142,7 +141,6 @@ START "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedSnsServiceName", - "version": "1.0.0", "runtime-id":"XXXX", "operation_name": "aws.sns", "resource_names": "sns-lambda", @@ -217,8 +215,8 @@ START "account_id:XXXX", "functionname:integration-tests-js-XXXX-status-code-500s_node18", "resource:integration-tests-js-XXXX-status-code-500s_node18", - "cold_start:false", "memorysize:1024", + "cold_start:false", "datadog_lambda:vX.X.X", "runtime:nodejs18.x" ], @@ -238,7 +236,6 @@ START "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedSqsServiceName", - "version": "1.0.0", "runtime-id":"XXXX", "operation_name": "aws.sqs", "resource_names": "my-queue", diff --git a/integration_tests/snapshots/logs/status-code-500s_node20.log b/integration_tests/snapshots/logs/status-code-500s_node20.log index 938aec86..3e343aca 100644 --- a/integration_tests/snapshots/logs/status-code-500s_node20.log +++ b/integration_tests/snapshots/logs/status-code-500s_node20.log @@ -8,8 +8,8 @@ START "account_id:XXXX", "functionname:integration-tests-js-XXXX-status-code-500s_node20", "resource:integration-tests-js-XXXX-status-code-500s_node20", - "cold_start:true", "memorysize:1024", + "cold_start:true", "datadog_lambda:vX.X.X", "runtime:nodejs20.x" ], @@ -23,8 +23,8 @@ START "account_id:XXXX", "functionname:integration-tests-js-XXXX-status-code-500s_node20", "resource:integration-tests-js-XXXX-status-code-500s_node20", - "cold_start:true", "memorysize:1024", + "cold_start:true", "datadog_lambda:vX.X.X", "runtime:nodejs20.x" ], @@ -44,7 +44,6 @@ START "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedApiGatewayServiceName", - "version": "1.0.0", "runtime-id":"XXXX", "operation_name": "aws.apigateway", "http.url": "undefined", @@ -54,7 +53,6 @@ START "_inferred_span.tag_source": "self", "_inferred_span.synchronicity": "sync", "http.method": "GET", - "http.route":"/{proxy+}", "stage": "test", "http.status_code": "500", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node20", @@ -92,6 +90,7 @@ START "function_trigger.event_source": "api-gateway", "function_trigger.event_source_arn": "arn:aws:apigateway:eu-west-1::/restapis/wt6mne2s9k/stages/test", "http.method": "GET", + "http.route": "/{proxy+}", "http.status_code": "500", "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node20", "language": "javascript" @@ -121,8 +120,8 @@ START "account_id:XXXX", "functionname:integration-tests-js-XXXX-status-code-500s_node20", "resource:integration-tests-js-XXXX-status-code-500s_node20", - "cold_start:false", "memorysize:1024", + "cold_start:false", "datadog_lambda:vX.X.X", "runtime:nodejs20.x" ], @@ -142,7 +141,6 @@ START "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedSnsServiceName", - "version": "1.0.0", "runtime-id":"XXXX", "operation_name": "aws.sns", "resource_names": "sns-lambda", @@ -217,8 +215,8 @@ START "account_id:XXXX", "functionname:integration-tests-js-XXXX-status-code-500s_node20", "resource:integration-tests-js-XXXX-status-code-500s_node20", - "cold_start:false", "memorysize:1024", + "cold_start:false", "datadog_lambda:vX.X.X", "runtime:nodejs20.x" ], @@ -238,7 +236,6 @@ START "_dd.p.tid": "XXXX", "_dd.p.dm": "-0", "service": "remappedSqsServiceName", - "version": "1.0.0", "runtime-id":"XXXX", "operation_name": "aws.sqs", "resource_names": "my-queue", diff --git a/integration_tests/snapshots/logs/status-code-500s_node22.log b/integration_tests/snapshots/logs/status-code-500s_node22.log new file mode 100644 index 00000000..06d6b80b --- /dev/null +++ b/integration_tests/snapshots/logs/status-code-500s_node22.log @@ -0,0 +1,302 @@ + +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-js-XXXX-status-code-500s_node22", + "resource:integration-tests-js-XXXX-status-code-500s_node22", + "memorysize:1024", + "cold_start:true", + "datadog_lambda:vX.X.X", + "runtime:nodejs22.x" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "aws.lambda.enhanced.errors", + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-js-XXXX-status-code-500s_node22", + "resource:integration-tests-js-XXXX-status-code-500s_node22", + "memorysize:1024", + "cold_start:true", + "datadog_lambda:vX.X.X", + "runtime:nodejs22.x" + ], + "v": 1 +} +{ + "traces": [ + [ + { + "trace_id":"XXXX", + "span_id":"XXXX", + "parent_id":"XXXX", + "name": "aws.apigateway", + "resource": "GET /{proxy+}", + "error": 0, + "meta": { + "_dd.p.tid": "XXXX", + "_dd.p.dm": "-0", + "service": "remappedApiGatewayServiceName", + "runtime-id":"XXXX", + "operation_name": "aws.apigateway", + "http.url": "undefined", + "resource_names": "GET /{proxy+}", + "request_id":"XXXX", + "apiid":"XXXX", + "_inferred_span.tag_source": "self", + "_inferred_span.synchronicity": "sync", + "http.method": "GET", + "stage": "test", + "http.status_code": "500", + "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node22", + "language": "javascript" + }, + "metrics": { + "_dd.agent_psr": 1, + "_dd.top_level": 1, + "process_id":XXXX, + "_sampling_priority_v1": 1 + }, + "start":XXXX, + "duration":XXXX, + "links": [], + "service": "remappedApiGatewayServiceName", + "type": "http" + }, + { + "trace_id":"XXXX", + "span_id":"XXXX", + "parent_id":"XXXX", + "name": "aws.lambda", + "resource": "integration-tests-js-XXXX-status-code-500s_node22", + "error": 1, + "meta": { + "service": "integration-tests-js-XXXX-status-code-500s_node22", + "version": "1.0.0", + "runtime-id":"XXXX", + "function_arn":"XXXX_node22", + "function_version": "$LATEST", + "request_id":"XXXX", + "resource_names": "integration-tests-js-XXXX-status-code-500s_node22", + "functionname": "integration-tests-js-XXXX-status-code-500s_node22", + "datadog_lambda":"XXXX", + "function_trigger.event_source": "api-gateway", + "function_trigger.event_source_arn": "arn:aws:apigateway:eu-west-1::/restapis/wt6mne2s9k/stages/test", + "http.method": "GET", + "http.route": "/{proxy+}", + "http.status_code": "500", + "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node22", + "language": "javascript" + }, + "metrics": { + "cold_start": 1, + "_dd.measured": 1, + "process_id":XXXX, + "_sampling_priority_v1": 1 + }, + "start":XXXX, + "duration":XXXX, + "links": [], + "service": "aws.lambda", + "type": "serverless" + } + ] + ] +} +END Duration: XXXX ms (init: 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-status-code-500s_node22", + "resource:integration-tests-js-XXXX-status-code-500s_node22", + "memorysize:1024", + "cold_start:false", + "datadog_lambda:vX.X.X", + "runtime:nodejs22.x" + ], + "v": 1 +} +{ + "traces": [ + [ + { + "trace_id":"XXXX", + "span_id":"XXXX", + "parent_id":"XXXX", + "name": "aws.sns", + "resource": "sns-lambda", + "error": 0, + "meta": { + "_dd.p.tid": "XXXX", + "_dd.p.dm": "-0", + "service": "remappedSnsServiceName", + "runtime-id":"XXXX", + "operation_name": "aws.sns", + "resource_names": "sns-lambda", + "request_id":"XXXX", + "_inferred_span.tag_source": "self", + "_inferred_span.synchronicity": "async", + "type": "Notification", + "subject": "TestInvoke", + "message_id": "95df01b4-ee98-5cb9-9903-4c221d41eb5e", + "topicname": "sns-lambda", + "topic_arn": "arn:aws:sns:us-east-2:123456789012:sns-lambda", + "event_subscription_arn": "arn:aws:sns:us-east-2:123456789012:sns-lambda:21be56ed-a058-49f5-8c98-aedd2564c486", + "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node22", + "language": "javascript" + }, + "metrics": { + "_dd.agent_psr": 1, + "_dd.top_level": 1, + "process_id":XXXX, + "_sampling_priority_v1": 1 + }, + "start":XXXX, + "duration":XXXX, + "links": [], + "service": "remappedSnsServiceName", + "type": "sns" + }, + { + "trace_id":"XXXX", + "span_id":"XXXX", + "parent_id":"XXXX", + "name": "aws.lambda", + "resource": "integration-tests-js-XXXX-status-code-500s_node22", + "error": 0, + "meta": { + "service": "integration-tests-js-XXXX-status-code-500s_node22", + "version": "1.0.0", + "runtime-id":"XXXX", + "function_arn":"XXXX_node22", + "function_version": "$LATEST", + "request_id":"XXXX", + "resource_names": "integration-tests-js-XXXX-status-code-500s_node22", + "functionname": "integration-tests-js-XXXX-status-code-500s_node22", + "datadog_lambda":"XXXX", + "function_trigger.event_source": "sns", + "function_trigger.event_source_arn": "arn:aws:sns:us-east-2:123456789012:sns-lambda", + "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node22", + "language": "javascript" + }, + "metrics": { + "cold_start": 0, + "_dd.measured": 1, + "process_id":XXXX, + "_sampling_priority_v1": 1 + }, + "start":XXXX, + "duration":XXXX, + "links": [], + "service": "aws.lambda", + "type": "serverless" + } + ] + ] +} +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-status-code-500s_node22", + "resource:integration-tests-js-XXXX-status-code-500s_node22", + "memorysize:1024", + "cold_start:false", + "datadog_lambda:vX.X.X", + "runtime:nodejs22.x" + ], + "v": 1 +} +{ + "traces": [ + [ + { + "trace_id":"XXXX", + "span_id":"XXXX", + "parent_id":"XXXX", + "name": "aws.sqs", + "resource": "my-queue", + "error": 0, + "meta": { + "_dd.p.tid": "XXXX", + "_dd.p.dm": "-0", + "service": "remappedSqsServiceName", + "runtime-id":"XXXX", + "operation_name": "aws.sqs", + "resource_names": "my-queue", + "request_id":"XXXX", + "_inferred_span.tag_source": "self", + "_inferred_span.synchronicity": "async", + "queuename": "my-queue", + "event_source_arn": "arn:aws:sqs:us-east-2:123456789012:my-queue", + "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "sender_id": "AIDAIENQZJOLO23YVJ4VO", + "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node22", + "language": "javascript" + }, + "metrics": { + "_dd.agent_psr": 1, + "_dd.top_level": 1, + "retry_count": 1, + "process_id":XXXX, + "_sampling_priority_v1": 1 + }, + "start":XXXX, + "duration":XXXX, + "links": [], + "service": "remappedSqsServiceName", + "type": "web" + }, + { + "trace_id":"XXXX", + "span_id":"XXXX", + "parent_id":"XXXX", + "name": "aws.lambda", + "resource": "integration-tests-js-XXXX-status-code-500s_node22", + "error": 0, + "meta": { + "service": "integration-tests-js-XXXX-status-code-500s_node22", + "version": "1.0.0", + "runtime-id":"XXXX", + "function_arn":"XXXX_node22", + "function_version": "$LATEST", + "request_id":"XXXX", + "resource_names": "integration-tests-js-XXXX-status-code-500s_node22", + "functionname": "integration-tests-js-XXXX-status-code-500s_node22", + "datadog_lambda":"XXXX", + "function_trigger.event_source": "sqs", + "function_trigger.event_source_arn": "arn:aws:sqs:us-east-2:123456789012:my-queue", + "_dd.base_service": "integration-tests-js-XXXX-status-code-500s_node22", + "language": "javascript" + }, + "metrics": { + "cold_start": 0, + "_dd.measured": 1, + "process_id":XXXX, + "_sampling_priority_v1": 1 + }, + "start":XXXX, + "duration":XXXX, + "links": [], + "service": "aws.lambda", + "type": "serverless" + } + ] + ] +} +END Duration: XXXX ms Memory Used: XXXX MB diff --git a/integration_tests/snapshots/logs/sync-metrics_node22.log b/integration_tests/snapshots/logs/sync-metrics_node22.log new file mode 100644 index 00000000..04a15556 --- /dev/null +++ b/integration_tests/snapshots/logs/sync-metrics_node22.log @@ -0,0 +1,58 @@ + +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-js-XXXX-sync-metrics_node22", + "resource:integration-tests-js-XXXX-sync-metrics_node22", + "memorysize:1024", + "cold_start:true", + "datadog_lambda:vX.X.X", + "runtime:nodejs22.x" + ], + "v": 1 +} +XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed APIGateway request +HTTP POST https://api.datadoghq.com/api/v1/distribution_points?api_key=XXXX TraceHeaders: ["x-datadog-parent-id:XXXX","x-datadog-sampling-priority:-1","x-datadog-trace-id:XXXX"] +END Duration: XXXX ms (init: 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-sync-metrics_node22", + "resource:integration-tests-js-XXXX-sync-metrics_node22", + "memorysize:1024", + "cold_start:false", + "datadog_lambda:vX.X.X", + "runtime:nodejs22.x" + ], + "v": 1 +} +XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed SNS request +HTTP POST https://api.datadoghq.com/api/v1/distribution_points?api_key=XXXX TraceHeaders: ["x-datadog-parent-id:XXXX","x-datadog-sampling-priority:-1","x-datadog-trace-id:XXXX"] +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", + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-js-XXXX-sync-metrics_node22", + "resource:integration-tests-js-XXXX-sync-metrics_node22", + "memorysize:1024", + "cold_start:false", + "datadog_lambda:vX.X.X", + "runtime:nodejs22.x" + ], + "v": 1 +} +HTTP POST https://api.datadoghq.com/api/v1/distribution_points?api_key=XXXX TraceHeaders: ["x-datadog-parent-id:XXXX","x-datadog-sampling-priority:-1","x-datadog-trace-id:XXXX"] +END Duration: XXXX ms Memory Used: XXXX MB diff --git a/integration_tests/snapshots/logs/throw-error-traced_node22.log b/integration_tests/snapshots/logs/throw-error-traced_node22.log new file mode 100644 index 00000000..2177c009 --- /dev/null +++ b/integration_tests/snapshots/logs/throw-error-traced_node22.log @@ -0,0 +1,100 @@ + +START +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-js-XXXX-throw-error-traced_node22", + "resource:integration-tests-js-XXXX-throw-error-traced_node22", + "memorysize:1024", + "cold_start:true", + "datadog_lambda:vX.X.X", + "runtime:nodejs22.x" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "aws.lambda.enhanced.errors", + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-js-XXXX-throw-error-traced_node22", + "resource:integration-tests-js-XXXX-throw-error-traced_node22", + "memorysize:1024", + "cold_start:true", + "datadog_lambda:vX.X.X", + "runtime:nodejs22.x" + ], + "v": 1 +} +XXXX-XX-XX XX:XX:XX.XXX ERROR [dd.trace_id=XXXX dd.span_id=XXXX] Invoke Error {"errorType":"Error","errorMessage":"Hello","stack":["Error: Hello"," at handle (/var/task/throw-error-traced.js:XXX:XXX)"," at /opt/nodejs/node_modules/datadog-lambda-js/utils/handler.js:XXX:XXX"," at /opt/nodejs/node_modules/datadog-lambda-js/index.js:XXX:XXX"," at step (/opt/nodejs/node_modules/datadog-lambda-js/index.js:XXX:XXX)"," at Object.next (/opt/nodejs/node_modules/datadog-lambda-js/index.js:XXX:XXX)"," at /opt/nodejs/node_modules/datadog-lambda-js/index.js:XXX:XXX"," at new Promise ()"," at __awaiter (/opt/nodejs/node_modules/datadog-lambda-js/index.js:XXX:XXX)"," at traceListenerOnWrap (/opt/nodejs/node_modules/datadog-lambda-js/index.js:XXX:XXX)"," at /opt/nodejs/node_modules/datadog-lambda-js/index.js:XXX:XXX"]} +END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB +START +XXXX-XX-XX XX:XX:XX.XXX ERROR [dd.trace_id=XXXX dd.span_id=XXXX] Invoke Error {"errorType":"Error","errorMessage":"Hello","stack":["Error: Hello"," at handle (/var/task/throw-error-traced.js:XXX:XXX)"," at /opt/nodejs/node_modules/datadog-lambda-js/utils/handler.js:XXX:XXX"," at /opt/nodejs/node_modules/datadog-lambda-js/index.js:XXX:XXX"," at step (/opt/nodejs/node_modules/datadog-lambda-js/index.js:XXX:XXX)"," at Object.next (/opt/nodejs/node_modules/datadog-lambda-js/index.js:XXX:XXX)"," at /opt/nodejs/node_modules/datadog-lambda-js/index.js:XXX:XXX"," at new Promise ()"," at __awaiter (/opt/nodejs/node_modules/datadog-lambda-js/index.js:XXX:XXX)"," at traceListenerOnWrap (/opt/nodejs/node_modules/datadog-lambda-js/index.js:XXX:XXX)"," at /opt/nodejs/node_modules/datadog-lambda-js/index.js:XXX:XXX"]} +{ + "e": XXXX, + "m": "aws.lambda.enhanced.invocations", + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-js-XXXX-throw-error-traced_node22", + "resource:integration-tests-js-XXXX-throw-error-traced_node22", + "memorysize:1024", + "cold_start:false", + "datadog_lambda:vX.X.X", + "runtime:nodejs22.x" + ], + "v": 1 +} +{ + "e": XXXX, + "m": "aws.lambda.enhanced.errors", + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-js-XXXX-throw-error-traced_node22", + "resource:integration-tests-js-XXXX-throw-error-traced_node22", + "memorysize:1024", + "cold_start:false", + "datadog_lambda:vX.X.X", + "runtime:nodejs22.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-throw-error-traced_node22", + "resource:integration-tests-js-XXXX-throw-error-traced_node22", + "memorysize:1024", + "cold_start:false", + "datadog_lambda:vX.X.X", + "runtime:nodejs22.x" + ], + "v": 1 +} +XXXX-XX-XX XX:XX:XX.XXX ERROR [dd.trace_id=XXXX dd.span_id=XXXX] Invoke Error {"errorType":"Error","errorMessage":"Hello","stack":["Error: Hello"," at handle (/var/task/throw-error-traced.js:XXX:XXX)"," at /opt/nodejs/node_modules/datadog-lambda-js/utils/handler.js:XXX:XXX"," at /opt/nodejs/node_modules/datadog-lambda-js/index.js:XXX:XXX"," at step (/opt/nodejs/node_modules/datadog-lambda-js/index.js:XXX:XXX)"," at Object.next (/opt/nodejs/node_modules/datadog-lambda-js/index.js:XXX:XXX)"," at /opt/nodejs/node_modules/datadog-lambda-js/index.js:XXX:XXX"," at new Promise ()"," at __awaiter (/opt/nodejs/node_modules/datadog-lambda-js/index.js:XXX:XXX)"," at traceListenerOnWrap (/opt/nodejs/node_modules/datadog-lambda-js/index.js:XXX:XXX)"," at /opt/nodejs/node_modules/datadog-lambda-js/index.js:XXX:XXX"]} +{ + "e": XXXX, + "m": "aws.lambda.enhanced.errors", + "t": [ + "region:eu-west-1", + "account_id:XXXX", + "functionname:integration-tests-js-XXXX-throw-error-traced_node22", + "resource:integration-tests-js-XXXX-throw-error-traced_node22", + "memorysize:1024", + "cold_start:false", + "datadog_lambda:vX.X.X", + "runtime:nodejs22.x" + ], + "v": 1 +} +END Duration: XXXX ms Memory Used: XXXX MB diff --git a/integration_tests/snapshots/return_values/async-metrics_node22_api-gateway-get.json b/integration_tests/snapshots/return_values/async-metrics_node22_api-gateway-get.json new file mode 100644 index 00000000..6f453e96 --- /dev/null +++ b/integration_tests/snapshots/return_values/async-metrics_node22_api-gateway-get.json @@ -0,0 +1,5 @@ +{ + "message": "hello, dog!", + "eventType": "APIGateway", + "requestId": "41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9" +} diff --git a/integration_tests/snapshots/return_values/async-metrics_node22_sns.json b/integration_tests/snapshots/return_values/async-metrics_node22_sns.json new file mode 100644 index 00000000..50064b8d --- /dev/null +++ b/integration_tests/snapshots/return_values/async-metrics_node22_sns.json @@ -0,0 +1,7 @@ +{ + "message": "hello, dog!", + "recordIds": [ + "95df01b4-ee98-5cb9-9903-4c221d41eb5e" + ], + "eventType": "SNS" +} diff --git a/integration_tests/snapshots/return_values/async-metrics_node22_sqs.json b/integration_tests/snapshots/return_values/async-metrics_node22_sqs.json new file mode 100644 index 00000000..c1ccfcb2 --- /dev/null +++ b/integration_tests/snapshots/return_values/async-metrics_node22_sqs.json @@ -0,0 +1,8 @@ +{ + "message": "hello, dog!", + "recordIds": [ + "059f36b4-87a3-44ab-83d2-661975830a7d", + "2e1424d4-f796-459a-8184-9c92662be6da" + ], + "eventType": "SQS" +} diff --git a/integration_tests/snapshots/return_values/esm_node22_api-gateway-get.json b/integration_tests/snapshots/return_values/esm_node22_api-gateway-get.json new file mode 100644 index 00000000..19765bd5 --- /dev/null +++ b/integration_tests/snapshots/return_values/esm_node22_api-gateway-get.json @@ -0,0 +1 @@ +null diff --git a/integration_tests/snapshots/return_values/esm_node22_sns.json b/integration_tests/snapshots/return_values/esm_node22_sns.json new file mode 100644 index 00000000..19765bd5 --- /dev/null +++ b/integration_tests/snapshots/return_values/esm_node22_sns.json @@ -0,0 +1 @@ +null diff --git a/integration_tests/snapshots/return_values/esm_node22_sqs.json b/integration_tests/snapshots/return_values/esm_node22_sqs.json new file mode 100644 index 00000000..19765bd5 --- /dev/null +++ b/integration_tests/snapshots/return_values/esm_node22_sqs.json @@ -0,0 +1 @@ +null diff --git a/integration_tests/snapshots/return_values/http-requests_node22_api-gateway-get.json b/integration_tests/snapshots/return_values/http-requests_node22_api-gateway-get.json new file mode 100644 index 00000000..eb1e9d31 --- /dev/null +++ b/integration_tests/snapshots/return_values/http-requests_node22_api-gateway-get.json @@ -0,0 +1,3 @@ +{ + "message": "hello, dog!" +} diff --git a/integration_tests/snapshots/return_values/http-requests_node22_sns.json b/integration_tests/snapshots/return_values/http-requests_node22_sns.json new file mode 100644 index 00000000..eb1e9d31 --- /dev/null +++ b/integration_tests/snapshots/return_values/http-requests_node22_sns.json @@ -0,0 +1,3 @@ +{ + "message": "hello, dog!" +} diff --git a/integration_tests/snapshots/return_values/http-requests_node22_sqs.json b/integration_tests/snapshots/return_values/http-requests_node22_sqs.json new file mode 100644 index 00000000..eb1e9d31 --- /dev/null +++ b/integration_tests/snapshots/return_values/http-requests_node22_sqs.json @@ -0,0 +1,3 @@ +{ + "message": "hello, dog!" +} diff --git a/integration_tests/snapshots/return_values/process-input-traced_node22_api-gateway-get.json b/integration_tests/snapshots/return_values/process-input-traced_node22_api-gateway-get.json new file mode 100644 index 00000000..12d7e1a1 --- /dev/null +++ b/integration_tests/snapshots/return_values/process-input-traced_node22_api-gateway-get.json @@ -0,0 +1,5 @@ +{ + "message": "hello, dog!", + "recordIds": [], + "eventType": "APIGateway" +} diff --git a/integration_tests/snapshots/return_values/process-input-traced_node22_sns.json b/integration_tests/snapshots/return_values/process-input-traced_node22_sns.json new file mode 100644 index 00000000..50064b8d --- /dev/null +++ b/integration_tests/snapshots/return_values/process-input-traced_node22_sns.json @@ -0,0 +1,7 @@ +{ + "message": "hello, dog!", + "recordIds": [ + "95df01b4-ee98-5cb9-9903-4c221d41eb5e" + ], + "eventType": "SNS" +} diff --git a/integration_tests/snapshots/return_values/process-input-traced_node22_sqs.json b/integration_tests/snapshots/return_values/process-input-traced_node22_sqs.json new file mode 100644 index 00000000..c1ccfcb2 --- /dev/null +++ b/integration_tests/snapshots/return_values/process-input-traced_node22_sqs.json @@ -0,0 +1,8 @@ +{ + "message": "hello, dog!", + "recordIds": [ + "059f36b4-87a3-44ab-83d2-661975830a7d", + "2e1424d4-f796-459a-8184-9c92662be6da" + ], + "eventType": "SQS" +} diff --git a/integration_tests/snapshots/return_values/status-code-500s_node22_api-gateway-get.json b/integration_tests/snapshots/return_values/status-code-500s_node22_api-gateway-get.json new file mode 100644 index 00000000..3a476177 --- /dev/null +++ b/integration_tests/snapshots/return_values/status-code-500s_node22_api-gateway-get.json @@ -0,0 +1,4 @@ +{ + "statusCode": 500, + "body": {} +} diff --git a/integration_tests/snapshots/return_values/status-code-500s_node22_sns.json b/integration_tests/snapshots/return_values/status-code-500s_node22_sns.json new file mode 100644 index 00000000..3a476177 --- /dev/null +++ b/integration_tests/snapshots/return_values/status-code-500s_node22_sns.json @@ -0,0 +1,4 @@ +{ + "statusCode": 500, + "body": {} +} diff --git a/integration_tests/snapshots/return_values/status-code-500s_node22_sqs.json b/integration_tests/snapshots/return_values/status-code-500s_node22_sqs.json new file mode 100644 index 00000000..3a476177 --- /dev/null +++ b/integration_tests/snapshots/return_values/status-code-500s_node22_sqs.json @@ -0,0 +1,4 @@ +{ + "statusCode": 500, + "body": {} +} diff --git a/integration_tests/snapshots/return_values/sync-metrics_node22_api-gateway-get.json b/integration_tests/snapshots/return_values/sync-metrics_node22_api-gateway-get.json new file mode 100644 index 00000000..6f453e96 --- /dev/null +++ b/integration_tests/snapshots/return_values/sync-metrics_node22_api-gateway-get.json @@ -0,0 +1,5 @@ +{ + "message": "hello, dog!", + "eventType": "APIGateway", + "requestId": "41b45ea3-70b5-11e6-b7bd-69b5aaebc7d9" +} diff --git a/integration_tests/snapshots/return_values/sync-metrics_node22_sns.json b/integration_tests/snapshots/return_values/sync-metrics_node22_sns.json new file mode 100644 index 00000000..50064b8d --- /dev/null +++ b/integration_tests/snapshots/return_values/sync-metrics_node22_sns.json @@ -0,0 +1,7 @@ +{ + "message": "hello, dog!", + "recordIds": [ + "95df01b4-ee98-5cb9-9903-4c221d41eb5e" + ], + "eventType": "SNS" +} diff --git a/integration_tests/snapshots/return_values/sync-metrics_node22_sqs.json b/integration_tests/snapshots/return_values/sync-metrics_node22_sqs.json new file mode 100644 index 00000000..c1ccfcb2 --- /dev/null +++ b/integration_tests/snapshots/return_values/sync-metrics_node22_sqs.json @@ -0,0 +1,8 @@ +{ + "message": "hello, dog!", + "recordIds": [ + "059f36b4-87a3-44ab-83d2-661975830a7d", + "2e1424d4-f796-459a-8184-9c92662be6da" + ], + "eventType": "SQS" +} diff --git a/integration_tests/snapshots/return_values/throw-error-traced_node22_api-gateway-get.json b/integration_tests/snapshots/return_values/throw-error-traced_node22_api-gateway-get.json new file mode 100644 index 00000000..7147cafa --- /dev/null +++ b/integration_tests/snapshots/return_values/throw-error-traced_node22_api-gateway-get.json @@ -0,0 +1 @@ +Invocation failed diff --git a/integration_tests/snapshots/return_values/throw-error-traced_node22_sns.json b/integration_tests/snapshots/return_values/throw-error-traced_node22_sns.json new file mode 100644 index 00000000..7147cafa --- /dev/null +++ b/integration_tests/snapshots/return_values/throw-error-traced_node22_sns.json @@ -0,0 +1 @@ +Invocation failed diff --git a/integration_tests/snapshots/return_values/throw-error-traced_node22_sqs.json b/integration_tests/snapshots/return_values/throw-error-traced_node22_sqs.json new file mode 100644 index 00000000..7147cafa --- /dev/null +++ b/integration_tests/snapshots/return_values/throw-error-traced_node22_sqs.json @@ -0,0 +1 @@ +Invocation failed diff --git a/package.json b/package.json index 5f0c2ed7..3aa3b06f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "datadog-lambda-js", - "version": "9.116.0", + "version": "9.117.0", "description": "Lambda client library that supports hybrid tracing in node js", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -28,7 +28,7 @@ "@types/node": "^20.12.10", "@types/promise-retry": "^1.1.3", "@types/shimmer": "^1.0.1", - "dd-trace": "^4.48.0", + "dd-trace": "^4.50.0", "jest": "^27.0.1", "mock-fs": "4.14.0", "nock": "13.5.4", diff --git a/scripts/add_new_region.sh b/scripts/add_new_region.sh index 17b06fd8..4d1a4795 100755 --- a/scripts/add_new_region.sh +++ b/scripts/add_new_region.sh @@ -2,8 +2,8 @@ OLD_REGION='us-east-1' -LAYER_NAMES=("Datadog-Node16-x" "Datadog-Node18-x", "Datadog-Node20-x") -NODE_VERSIONS_FOR_AWS_CLI=("nodejs16.x" "nodejs18.x" "nodejs20.x") +LAYER_NAMES=("Datadog-Node16-x" "Datadog-Node18-x", "Datadog-Node20-x" "Datadog-Node22-x") +NODE_VERSIONS_FOR_AWS_CLI=("nodejs16.x" "nodejs18.x" "nodejs20.x" "nodejs22.x") NEW_REGION=$1 publish_layer() { diff --git a/scripts/build_layers.sh b/scripts/build_layers.sh index 2e83ec69..d2ff9eea 100755 --- a/scripts/build_layers.sh +++ b/scripts/build_layers.sh @@ -11,7 +11,7 @@ set -e LAYER_DIR=".layers" LAYER_FILES_PREFIX="datadog_lambda_node" -export NODE_VERSIONS=("16.14" "18.12" "20.9") +export NODE_VERSIONS=("16.14" "18.12" "20.9" "22.11") if [ -z "$NODE_VERSION" ]; then echo "Node version not specified, running for all node versions." diff --git a/scripts/check_layer_size.sh b/scripts/check_layer_size.sh index 0e052cb6..c6a84480 100755 --- a/scripts/check_layer_size.sh +++ b/scripts/check_layer_size.sh @@ -9,7 +9,7 @@ # 7 mb size limit MAX_LAYER_COMPRESSED_SIZE_KB=$(expr 7 \* 1024) -MAX_LAYER_UNCOMPRESSED_SIZE_KB=$(expr 18 \* 1024) +MAX_LAYER_UNCOMPRESSED_SIZE_KB=$(expr 19 \* 1024) LAYER_FILES_PREFIX="datadog_lambda_node" diff --git a/scripts/list_layers.sh b/scripts/list_layers.sh index 965f4553..1d385150 100755 --- a/scripts/list_layers.sh +++ b/scripts/list_layers.sh @@ -10,7 +10,7 @@ set -e -LAYER_NAMES=("Datadog-Node16-x" "Datadog-Node18-x" "Datadog-Node20-x") +LAYER_NAMES=("Datadog-Node16-x" "Datadog-Node18-x" "Datadog-Node20-x" "Datadog-Node22-x") AVAILABLE_REGIONS=$(aws ec2 describe-regions | jq -r '.[] | .[] | .RegionName') LAYERS_MISSING_REGIONS=() diff --git a/scripts/publish_layers.sh b/scripts/publish_layers.sh index 8a633d84..f150ebb7 100755 --- a/scripts/publish_layers.sh +++ b/scripts/publish_layers.sh @@ -10,9 +10,9 @@ # VERSION is required. set -e -NODE_VERSIONS_FOR_AWS_CLI=("nodejs16.x" "nodejs18.x" "nodejs20.x") -LAYER_PATHS=(".layers/datadog_lambda_node16.14.zip" ".layers/datadog_lambda_node18.12.zip" ".layers/datadog_lambda_node20.9.zip") -AVAILABLE_LAYERS=("Datadog-Node16-x" "Datadog-Node18-x" "Datadog-Node20-x") +NODE_VERSIONS_FOR_AWS_CLI=("nodejs16.x" "nodejs18.x" "nodejs20.x" "nodejs22.x") +LAYER_PATHS=(".layers/datadog_lambda_node16.14.zip" ".layers/datadog_lambda_node18.12.zip" ".layers/datadog_lambda_node20.9.zip" ".layers/datadog_lambda_node22.11.zip") +AVAILABLE_LAYERS=("Datadog-Node16-x" "Datadog-Node18-x" "Datadog-Node20-x" "Datadog-Node22-x") AVAILABLE_REGIONS=$(aws ec2 describe-regions | jq -r '.[] | .[] | .RegionName') BATCH_SIZE=60 PIDS=() diff --git a/scripts/run_integration_tests.sh b/scripts/run_integration_tests.sh index 57d943b8..b8f508bb 100755 --- a/scripts/run_integration_tests.sh +++ b/scripts/run_integration_tests.sh @@ -32,8 +32,9 @@ mismatch_found=false node16=("nodejs16.x" "16.14" $(xxd -l 4 -c 4 -p < /dev/random)) node18=("nodejs18.x" "18.12" $(xxd -l 4 -c 4 -p < /dev/random)) node20=("nodejs20.x" "20.9" $(xxd -l 4 -c 4 -p < /dev/random)) +node22=("nodejs22.x" "22.11" $(xxd -l 4 -c 4 -p < /dev/random)) -PARAMETERS_SETS=("node16" "node18" "node20") +PARAMETERS_SETS=("node16" "node18" "node20" "node22") if [ -z "$RUNTIME_PARAM" ]; then echo "Node version not specified, running for all node versions." diff --git a/scripts/run_tests.sh b/scripts/run_tests.sh index 0395da63..fa2cf409 100755 --- a/scripts/run_tests.sh +++ b/scripts/run_tests.sh @@ -9,7 +9,7 @@ # For local use only set -e -NODE_VERSIONS=("16.14" "18.12" "20.9") +NODE_VERSIONS=("16.14" "18.12" "20.9" "22.11") for node_version in "${NODE_VERSIONS[@]}" do diff --git a/scripts/sign_layers.sh b/scripts/sign_layers.sh index c28c2889..50c76eb2 100755 --- a/scripts/sign_layers.sh +++ b/scripts/sign_layers.sh @@ -8,7 +8,7 @@ set -e LAYER_DIR=".layers" -LAYER_FILES=("datadog_lambda_node16.14.zip" "datadog_lambda_node18.12.zip" "datadog_lambda_node20.9.zip") +LAYER_FILES=("datadog_lambda_node16.14.zip" "datadog_lambda_node18.12.zip" "datadog_lambda_node20.9.zip" "datadog_lambda_node22.11.zip") SIGNING_PROFILE_NAME="DatadogLambdaSigningProfile" if [ -z "$LAYER_FILE" ]; then diff --git a/src/metrics/enhanced-metrics.spec.ts b/src/metrics/enhanced-metrics.spec.ts index 230852b3..a2d4be4c 100644 --- a/src/metrics/enhanced-metrics.spec.ts +++ b/src/metrics/enhanced-metrics.spec.ts @@ -38,6 +38,11 @@ describe("getRuntimeTag", () => { mockedGetProcessVersion.mockReturnValue("v20.9.0"); expect(getRuntimeTag()).toBe("runtime:nodejs20.x"); }); + + it("returns the right tag for v22.11.0", () => { + mockedGetProcessVersion.mockReturnValue("v22.11.0"); + expect(getRuntimeTag()).toBe("runtime:nodejs22.x"); + }); }); describe("getEnhancedMetricTags", () => { diff --git a/src/metrics/enhanced-metrics.ts b/src/metrics/enhanced-metrics.ts index 36eeb8da..7b736c58 100644 --- a/src/metrics/enhanced-metrics.ts +++ b/src/metrics/enhanced-metrics.ts @@ -15,6 +15,7 @@ enum RuntimeTagValues { Node16 = "nodejs16.x", Node18 = "nodejs18.x", Node20 = "nodejs20.x", + Node22 = "nodejs22.x", } export function getVersionTag(): string { @@ -42,6 +43,10 @@ export function getRuntimeTag(): string | null { processVersionTagString = RuntimeTagValues.Node20; } + if (processVersion.startsWith("v22")) { + processVersionTagString = RuntimeTagValues.Node22; + } + if (!processVersionTagString) { return null; } diff --git a/yarn.lock b/yarn.lock index 40b3ac70..1eb56c29 100644 --- a/yarn.lock +++ b/yarn.lock @@ -739,10 +739,15 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@datadog/native-appsec@8.1.1": - version "8.1.1" - resolved "https://registry.yarnpkg.com/@datadog/native-appsec/-/native-appsec-8.1.1.tgz#76aa34697e6ecbd3d9ef7e6938d3cdcfa689b1f3" - integrity sha512-mf+Ym/AzET4FeUTXOs8hz0uLOSsVIUnavZPUx8YoKWK5lKgR2L+CLfEzOpjBwgFpDgbV8I1/vyoGelgGpsMKHA== +"@datadog/libdatadog@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@datadog/libdatadog/-/libdatadog-0.2.2.tgz#ac02c76ac9a38250dca740727c7cdf00244ce3d3" + integrity sha512-rTWo96mEPTY5UbtGoFj8/wY0uKSViJhsPg/Z6aoFWBFXQ8b45Ix2e/yvf92AAwrhG+gPLTxEqTXh3kef2dP8Ow== + +"@datadog/native-appsec@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@datadog/native-appsec/-/native-appsec-8.3.0.tgz#91afd89d18d386be4da8a1b0e04500f2f8b5eb66" + integrity sha512-RYHbSJ/MwJcJaLzaCaZvUyNLUKFbMshayIiv4ckpFpQJDiq1T8t9iM2k7008s75g1vRuXfsRNX7MaLn4aoFuWA== dependencies: node-gyp-build "^3.9.0" @@ -754,25 +759,25 @@ lru-cache "^7.14.0" node-gyp-build "^4.5.0" -"@datadog/native-iast-taint-tracking@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@datadog/native-iast-taint-tracking/-/native-iast-taint-tracking-3.1.0.tgz#7b2ed7f8fad212d65e5ab03bcdea8b42a3051b2e" - integrity sha512-rw6qSjmxmu1yFHVvZLXFt/rVq2tUZXocNogPLB8n7MPpA0jijNGb109WokWw5ITImiW91GcGDuBW6elJDVKouQ== +"@datadog/native-iast-taint-tracking@3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@datadog/native-iast-taint-tracking/-/native-iast-taint-tracking-3.2.0.tgz#9fb6823d82f934e12c06ea1baa7399ca80deb2ec" + integrity sha512-Mc6FzCoyvU5yXLMsMS9yKnEqJMWoImAukJXolNWCTm+JQYCMf2yMsJ8pBAm7KyZKliamM9rCn7h7Tr2H3lXwjA== dependencies: node-gyp-build "^3.9.0" -"@datadog/native-metrics@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@datadog/native-metrics/-/native-metrics-2.0.0.tgz#65bf03313ee419956361e097551db36173e85712" - integrity sha512-YklGVwUtmKGYqFf1MNZuOHvTYdKuR4+Af1XkWcMD8BwOAjxmd9Z+97328rCOY8TFUJzlGUPaXzB8j2qgG/BMwA== +"@datadog/native-metrics@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@datadog/native-metrics/-/native-metrics-3.0.1.tgz#dc276c93785c0377a048e316f23b7c8ff3acfa84" + integrity sha512-0GuMyYyXf+Qpb/F+Fcekz58f2mO37lit9U3jMbWY/m8kac44gCPABzL5q3gWbdH+hWgqYfQoEYsdNDGSrKfwoQ== dependencies: node-addon-api "^6.1.0" node-gyp-build "^3.9.0" -"@datadog/pprof@5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@datadog/pprof/-/pprof-5.3.0.tgz#c2f58d328ecced7f99887f1a559d7fe3aecb9219" - integrity sha512-53z2Q3K92T6Pf4vz4Ezh8kfkVEvLzbnVqacZGgcbkP//q0joFzO8q00Etw1S6NdnCX0XmX08ULaF4rUI5r14mw== +"@datadog/pprof@5.4.1": + version "5.4.1" + resolved "https://registry.yarnpkg.com/@datadog/pprof/-/pprof-5.4.1.tgz#08c9bcf5d8efb2eeafdfc9f5bb5402f79fb41266" + integrity sha512-IvpL96e/cuh8ugP5O8Czdup7XQOLHeIDgM5pac5W7Lc1YzGe5zTtebKFpitvb1CPw1YY+1qFx0pWGgKP2kOfHg== dependencies: delay "^5.0.0" node-gyp-build "<4.0" @@ -785,6 +790,11 @@ resolved "https://registry.yarnpkg.com/@datadog/sketches-js/-/sketches-js-2.1.1.tgz#9ec2251b3c932b4f43e1d164461fa6cb6f28b7d0" integrity sha512-d5RjycE+MObE/hU+8OM5Zp4VjTwiPLRa8299fj7muOmR16fb942z8byoMbCErnGh0lBevvgkGrLclQDvINbIyg== +"@isaacs/ttlcache@^1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz#21fb23db34e9b6220c6ba023a0118a2dd3461ea2" + integrity sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA== + "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -2093,17 +2103,19 @@ dc-polyfill@^0.1.3, dc-polyfill@^0.1.4: resolved "https://registry.yarnpkg.com/dc-polyfill/-/dc-polyfill-0.1.6.tgz#c2940fa68ffb24a7bf127cc6cfdd15b39f0e7f02" integrity sha512-UV33cugmCC49a5uWAApM+6Ev9ZdvIUMTrtCO9fj96TPGOQiea54oeO3tiEVdVeo3J9N2UdJEmbS4zOkkEA35uQ== -dd-trace@^4.48.0: - version "4.48.0" - resolved "https://registry.yarnpkg.com/dd-trace/-/dd-trace-4.48.0.tgz#2d3ec3a414a56a0b585a72e87835c06772d116ce" - integrity sha512-o+XQJnidxPqOi6ynQ4eryDqUSprRvmOkUTmxJ92fEmRH51z7rKiBcG3YlIarEzn6JHHpi7uxSjmndbx4aW1RHw== +dd-trace@^4.50.0: + version "4.50.0" + resolved "https://registry.yarnpkg.com/dd-trace/-/dd-trace-4.50.0.tgz#bddd46fba44414fcb199d7c76f406d885fc17a8c" + integrity sha512-3aEM4aEE4hqaG2gbcn6z/+YZ+pggBZYcZ7FOjh77KOoelShjRW1FlQ+mLs2Y8X5m03xqWY1Uv20yy9QkUNBKnQ== dependencies: - "@datadog/native-appsec" "8.1.1" + "@datadog/libdatadog" "^0.2.2" + "@datadog/native-appsec" "8.3.0" "@datadog/native-iast-rewriter" "2.5.0" - "@datadog/native-iast-taint-tracking" "3.1.0" - "@datadog/native-metrics" "^2.0.0" - "@datadog/pprof" "5.3.0" + "@datadog/native-iast-taint-tracking" "3.2.0" + "@datadog/native-metrics" "^3.0.1" + "@datadog/pprof" "5.4.1" "@datadog/sketches-js" "^2.1.0" + "@isaacs/ttlcache" "^1.4.1" "@opentelemetry/api" ">=1.0.0 <1.9.0" "@opentelemetry/core" "^1.14.0" crypto-randomuuid "^1.0.0"