Skip to content

Commit 109a606

Browse files
authored
feat: Node20 (#437)
* feat: Node20 * fix: node20.9, not 20.6 * feat: global add node-gyp * fix: fix checksize node version * fix: Use the node20.x runtime tag instead of 18 * feat: Node-gyp global add in the right place * Feat: only node-gyp with 20.9 because it's not compatible with 14 * feat: conditional instead of with for node20 node-gyp * fix: replace node18 with node20 in snapshots after I mistakenly used the node18 tag while creating * feat: Remove tracer debug
1 parent 9534c00 commit 109a606

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+1257
-18
lines changed

.github/workflows/build.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
strategy:
4646
max-parallel: 4
4747
matrix:
48-
node-version: [14.15, 16.14, 18.12]
48+
node-version: [14.15, 16.14, 18.12, 20.9]
4949
steps:
5050
- name: Checkout
5151
uses: actions/checkout@v3
@@ -68,6 +68,10 @@ jobs:
6868
restore-keys: |
6969
${{ runner.os }}-yarn-
7070
71+
- name: Install NodeGYP
72+
if: matrix.node-version == '20.9'
73+
run: yarn global add node-gyp
74+
7175
- name: Install dependencies
7276
run: yarn install
7377

@@ -84,7 +88,7 @@ jobs:
8488
runs-on: ubuntu-latest
8589
strategy:
8690
matrix:
87-
runtime-param: [14, 16, 18]
91+
runtime-param: [14, 16, 18, 20]
8892
steps:
8993
- name: Checkout
9094
uses: actions/checkout@v3

.github/workflows/check-size.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ jobs:
77
runs-on: ubuntu-latest
88
strategy:
99
matrix:
10-
node-version: [14.15, 16.14, 18.12]
10+
node-version: [14.15, 16.14, 18.12, 20.9]
1111
steps:
1212
- name: Checkout
1313
uses: actions/checkout@v3

Dockerfile

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@ ARG image
44

55
# Install git so we can specify a specific git ref (ie: refs/head/my-feature) in package.json
66
# to install a specific dd-trace version for performance test
7-
RUN apk add git
7+
RUN apk add git python3 make g++
88

99
# Create the directory structure required for AWS Lambda Layer
1010
RUN mkdir -p /nodejs/node_modules/
1111

1212
# Install dev dependencies
1313
COPY . datadog-lambda-js
1414
WORKDIR /datadog-lambda-js
15+
RUN if [ $image = "node:20.9-alpine" ] ; then yarn global add node-gyp; fi;
1516
RUN yarn install
1617

1718
# Build the lambda layer
@@ -24,7 +25,8 @@ RUN rm -rf node_modules
2425

2526
# Move dd-trace from devDependencies to production dependencies
2627
# That way it is included in our layer, while keeping it an optional dependency for npm
27-
RUN node ./scripts/move_ddtrace_dependency.js "$(cat package.json)" > package.json
28+
RUN node ./scripts/move_ddtrace_dependency.js "$(cat package.json)" > package-new.json
29+
RUN mv package-new.json package.json
2830
# Install dependencies
2931
RUN yarn install --production=true
3032
# Copy the dependencies to the modules folder

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
[![Slack](https://chat.datadoghq.com/badge.svg?bg=632CA6)](https://chat.datadoghq.com/)
77
[![License](https://img.shields.io/badge/license-Apache--2.0-blue)](https://github.com/DataDog/datadog-lambda-js/blob/main/LICENSE)
88

9-
Datadog Lambda Library for Node.js (14.x, 16.x, and 18.x) enables enhanced Lambda metrics, distributed tracing, and custom metric submission from AWS Lambda functions.
9+
Datadog Lambda Library for Node.js (14.x, 16.x, 18.x, and 20.x) enables enhanced Lambda metrics, distributed tracing, and custom metric submission from AWS Lambda functions.
1010

1111
## Installation
1212

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
2+
START
3+
{
4+
"e": XXXX,
5+
"m": "aws.lambda.enhanced.invocations",
6+
"t": [
7+
"region:eu-west-1",
8+
"account_id:XXXX",
9+
"functionname:integration-tests-js-XXXX-async-metrics_node20",
10+
"resource:integration-tests-js-XXXX-async-metrics_node20",
11+
"cold_start:true",
12+
"memorysize:1024",
13+
"datadog_lambda:vX.X.X",
14+
"runtime:nodejs20.x"
15+
],
16+
"v": 1
17+
}
18+
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed APIGateway request
19+
{
20+
"e": XXXX,
21+
"m": "serverless.integration_test.execution",
22+
"t": [
23+
"tagkey:tagvalue",
24+
"eventsource:APIGateway",
25+
"dd_lambda_layer:datadog-nodev20.XX.X"
26+
],
27+
"v": 1
28+
}
29+
END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB
30+
START
31+
{
32+
"e": XXXX,
33+
"m": "aws.lambda.enhanced.invocations",
34+
"t": [
35+
"region:eu-west-1",
36+
"account_id:XXXX",
37+
"functionname:integration-tests-js-XXXX-async-metrics_node20",
38+
"resource:integration-tests-js-XXXX-async-metrics_node20",
39+
"cold_start:false",
40+
"memorysize:1024",
41+
"datadog_lambda:vX.X.X",
42+
"runtime:nodejs20.x"
43+
],
44+
"v": 1
45+
}
46+
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed SNS request
47+
{
48+
"e": XXXX,
49+
"m": "serverless.integration_test.records_processed",
50+
"t": [
51+
"tagkey:tagvalue",
52+
"eventsource:SNS",
53+
"dd_lambda_layer:datadog-nodev20.XX.X"
54+
],
55+
"v": 1
56+
}
57+
{
58+
"e": XXXX,
59+
"m": "serverless.integration_test.execution",
60+
"t": [
61+
"tagkey:tagvalue",
62+
"eventsource:SNS",
63+
"dd_lambda_layer:datadog-nodev20.XX.X"
64+
],
65+
"v": 1
66+
}
67+
END Duration: XXXX ms Memory Used: XXXX MB
68+
START
69+
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed SQS request
70+
{
71+
"e": XXXX,
72+
"m": "aws.lambda.enhanced.invocations",
73+
"t": [
74+
"region:eu-west-1",
75+
"account_id:XXXX",
76+
"functionname:integration-tests-js-XXXX-async-metrics_node20",
77+
"resource:integration-tests-js-XXXX-async-metrics_node20",
78+
"cold_start:false",
79+
"memorysize:1024",
80+
"datadog_lambda:vX.X.X",
81+
"runtime:nodejs20.x"
82+
],
83+
"v": 1
84+
}
85+
{
86+
"e": XXXX,
87+
"m": "serverless.integration_test.records_processed",
88+
"t": [
89+
"tagkey:tagvalue",
90+
"eventsource:SQS",
91+
"dd_lambda_layer:datadog-nodev20.XX.X"
92+
],
93+
"v": 1
94+
}
95+
{
96+
"e": XXXX,
97+
"m": "serverless.integration_test.records_processed",
98+
"t": [
99+
"tagkey:tagvalue",
100+
"eventsource:SQS",
101+
"dd_lambda_layer:datadog-nodev20.XX.X"
102+
],
103+
"v": 1
104+
}
105+
{
106+
"e": XXXX,
107+
"m": "serverless.integration_test.execution",
108+
"t": [
109+
"tagkey:tagvalue",
110+
"eventsource:SQS",
111+
"dd_lambda_layer:datadog-nodev20.XX.X"
112+
],
113+
"v": 1
114+
}
115+
END Duration: XXXX ms Memory Used: XXXX MB
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
2+
START
3+
{
4+
"e": XXXX,
5+
"m": "aws.lambda.enhanced.invocations",
6+
"t": [
7+
"region:eu-west-1",
8+
"account_id:XXXX",
9+
"functionname:integration-tests-js-XXXX-esm_node20",
10+
"resource:integration-tests-js-XXXX-esm_node20",
11+
"cold_start:true",
12+
"memorysize:1024",
13+
"datadog_lambda:vX.X.X",
14+
"runtime:nodejs20.x"
15+
],
16+
"v": 1
17+
}
18+
END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB
19+
START
20+
{
21+
"e": XXXX,
22+
"m": "aws.lambda.enhanced.invocations",
23+
"t": [
24+
"region:eu-west-1",
25+
"account_id:XXXX",
26+
"functionname:integration-tests-js-XXXX-esm_node20",
27+
"resource:integration-tests-js-XXXX-esm_node20",
28+
"cold_start:false",
29+
"memorysize:1024",
30+
"datadog_lambda:vX.X.X",
31+
"runtime:nodejs20.x"
32+
],
33+
"v": 1
34+
}
35+
END Duration: XXXX ms Memory Used: XXXX MB
36+
START
37+
{
38+
"e": XXXX,
39+
"m": "aws.lambda.enhanced.invocations",
40+
"t": [
41+
"region:eu-west-1",
42+
"account_id:XXXX",
43+
"functionname:integration-tests-js-XXXX-esm_node20",
44+
"resource:integration-tests-js-XXXX-esm_node20",
45+
"cold_start:false",
46+
"memorysize:1024",
47+
"datadog_lambda:vX.X.X",
48+
"runtime:nodejs20.x"
49+
],
50+
"v": 1
51+
}
52+
END Duration: XXXX ms Memory Used: XXXX MB
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
2+
START
3+
{
4+
"e": XXXX,
5+
"m": "aws.lambda.enhanced.invocations",
6+
"t": [
7+
"region:eu-west-1",
8+
"account_id:XXXX",
9+
"functionname:integration-tests-js-XXXX-http-requests_node20",
10+
"resource:integration-tests-js-XXXX-http-requests_node20",
11+
"cold_start:true",
12+
"memorysize:1024",
13+
"datadog_lambda:vX.X.X",
14+
"runtime:nodejs20.x"
15+
],
16+
"v": 1
17+
}
18+
HTTP GET https://ip-ranges.datadoghq.com/ TraceHeaders: ["x-datadog-parent-id:XXXX","x-datadog-sampling-priority:-1","x-datadog-trace-id:XXXX"]
19+
HTTP GET https://ip-ranges.datadoghq.eu/ TraceHeaders: ["x-datadog-parent-id:XXXX","x-datadog-sampling-priority:-1","x-datadog-trace-id:XXXX"]
20+
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
21+
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"]
22+
END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB
23+
START
24+
{
25+
"e": XXXX,
26+
"m": "aws.lambda.enhanced.invocations",
27+
"t": [
28+
"region:eu-west-1",
29+
"account_id:XXXX",
30+
"functionname:integration-tests-js-XXXX-http-requests_node20",
31+
"resource:integration-tests-js-XXXX-http-requests_node20",
32+
"cold_start:false",
33+
"memorysize:1024",
34+
"datadog_lambda:vX.X.X",
35+
"runtime:nodejs20.x"
36+
],
37+
"v": 1
38+
}
39+
HTTP GET https://ip-ranges.datadoghq.com/ TraceHeaders: ["x-datadog-parent-id:XXXX","x-datadog-sampling-priority:-1","x-datadog-trace-id:XXXX"]
40+
HTTP GET https://ip-ranges.datadoghq.eu/ TraceHeaders: ["x-datadog-parent-id:XXXX","x-datadog-sampling-priority:-1","x-datadog-trace-id:XXXX"]
41+
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
42+
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"]
43+
END Duration: XXXX ms Memory Used: XXXX MB
44+
START
45+
{
46+
"e": XXXX,
47+
"m": "aws.lambda.enhanced.invocations",
48+
"t": [
49+
"region:eu-west-1",
50+
"account_id:XXXX",
51+
"functionname:integration-tests-js-XXXX-http-requests_node20",
52+
"resource:integration-tests-js-XXXX-http-requests_node20",
53+
"cold_start:false",
54+
"memorysize:1024",
55+
"datadog_lambda:vX.X.X",
56+
"runtime:nodejs20.x"
57+
],
58+
"v": 1
59+
}
60+
HTTP GET https://ip-ranges.datadoghq.com/ TraceHeaders: ["x-datadog-parent-id:XXXX","x-datadog-sampling-priority:-1","x-datadog-trace-id:XXXX"]
61+
HTTP GET https://ip-ranges.datadoghq.eu/ TraceHeaders: ["x-datadog-parent-id:XXXX","x-datadog-sampling-priority:-1","x-datadog-trace-id:XXXX"]
62+
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
63+
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"]
64+
END Duration: XXXX ms Memory Used: XXXX MB

0 commit comments

Comments
 (0)