Skip to content

Commit 995a42b

Browse files
add node24 as supported runtime (#692)
add node24 as supported runtime bump version, update logs, add argument validation to scripts Merge branch 'main' into onzia/add-node-24 Co-authored-by: olivier.ndjikenzia <[email protected]>
1 parent a2be0b2 commit 995a42b

File tree

86 files changed

+4507
-70
lines changed

Some content is hidden

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

86 files changed

+4507
-70
lines changed

.github/workflows/build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ jobs:
4444
strategy:
4545
max-parallel: 4
4646
matrix:
47-
node-version: [18.12, 20.19, 22.11]
47+
node-version: [18.12, 20.19, 22.11, 24.11]
4848
steps:
4949
- name: Checkout
5050
uses: actions/checkout@v3
@@ -67,7 +67,7 @@ jobs:
6767
restore-keys: |
6868
${{ runner.os }}-yarn-
6969
- name: Install NodeGYP
70-
if: matrix.node-version == '20.19' || matrix.node-version == '22.11'
70+
if: matrix.node-version == '20.19' || matrix.node-version == '22.11' || matrix.node-version == '24.11'
7171
run: yarn global add node-gyp
7272

7373
- name: Install dependencies

.gitlab/datasources/runtimes.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,6 @@ runtimes:
88
- name: "node22"
99
node_version: "22.11"
1010
node_major_version: "22"
11+
- name: "node24"
12+
node_version: "24.11"
13+
node_major_version: "24"

.gitlab/scripts/publish_layers.sh

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,25 @@
1010
set -e
1111

1212
# Available runtimes: https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html
13-
AWS_CLI_NODE_VERSIONS=("nodejs18.x" "nodejs20.x" "nodejs22.x")
14-
LAYER_PATHS=(".layers/datadog_lambda_node18.12.zip" ".layers/datadog_lambda_node20.19.zip" ".layers/datadog_lambda_node22.11.zip")
15-
LAYERS=("Datadog-Node18-x" "Datadog-Node20-x" "Datadog-Node22-x")
16-
NODE_VERSIONS=("18.12" "20.19" "22.11")
13+
AWS_CLI_NODE_VERSIONS=("nodejs18.x" "nodejs20.x" "nodejs22.x" "nodejs24.x")
14+
LAYER_PATHS=(".layers/datadog_lambda_node18.12.zip" ".layers/datadog_lambda_node20.19.zip" ".layers/datadog_lambda_node22.11.zip" ".layers/datadog_lambda_node24.11.zip")
15+
LAYERS=("Datadog-Node18-x" "Datadog-Node20-x" "Datadog-Node22-x" "Datadog-Node24-x")
16+
NODE_VERSIONS=("18.12" "20.19" "22.11" "24.11")
1717
STAGES=('prod', 'sandbox', 'staging')
1818

19+
# Ensure the argument arrays have the same length
20+
expected_length=${#AWS_CLI_NODE_VERSIONS[@]}
21+
if [[ ${#LAYER_PATHS[@]} -ne $expected_length ]] || \
22+
[[ ${#LAYERS[@]} -ne $expected_length ]] || \
23+
[[ ${#AVAILABLE_LAYERS[@]} -ne $expected_length ]]; then; then
24+
echo "ERROR: arguments AWS_CLI_NODE_VERSIONS, LAYER_PATHS, LAYERS, and NODE_VERSIONS must have the same number of entries."
25+
echo "AWS_CLI_NODE_VERSIONS has ${#AWS_CLI_NODE_VERSIONS[@]} entries."
26+
echo "LAYER_PATHS has ${#LAYER_PATHS[@]} entries."
27+
echo "LAYERS has ${#LAYERS[@]} entries."
28+
echo "NODE_VERSIONS has ${#NODE_VERSIONS[@]} entries."
29+
exit 1
30+
fi
31+
1932
printf "Starting script...\n\n"
2033

2134
publish_layer() {

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 (18.x, 20.x, and 22.x) enables enhanced Lambda metrics, distributed tracing, and custom metric submission from AWS Lambda functions.
9+
Datadog Lambda Library for Node.js (18.x, 20.x, 22.x, and 24.x) enables enhanced Lambda metrics, distributed tracing, and custom metric submission from AWS Lambda functions.
1010

1111
## Installation
1212

Lines changed: 293 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,293 @@
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_node24",
10+
"resource:integration-tests-js-XXXX-async-metrics_node24",
11+
"memorysize:1024",
12+
"cold_start:true",
13+
"datadog_lambda:vX.X.X",
14+
"runtime:nodejs24.x"
15+
],
16+
"v": 1
17+
}
18+
{
19+
"e": XXXX,
20+
"m": "serverless.integration_test.outside_handler",
21+
"t": [
22+
"tagkey:tagvalue",
23+
"eventsource:outside_handler",
24+
"dd_lambda_layer:datadog-nodev24.XX.X"
25+
],
26+
"v": 1
27+
}
28+
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed APIGateway request
29+
{
30+
"e": XXXX,
31+
"m": "serverless.integration_test.execution",
32+
"t": [
33+
"tagkey:tagvalue",
34+
"eventsource:APIGateway",
35+
"dd_lambda_layer:datadog-nodev24.XX.X"
36+
],
37+
"v": 1
38+
}
39+
END Duration: XXXX ms (init: XXXX ms) Memory Used: XXXX MB
40+
START
41+
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed undefined request
42+
{
43+
"e": XXXX,
44+
"m": "aws.lambda.enhanced.invocations",
45+
"t": [
46+
"region:eu-west-1",
47+
"account_id:XXXX",
48+
"functionname:integration-tests-js-XXXX-async-metrics_node24",
49+
"resource:integration-tests-js-XXXX-async-metrics_node24",
50+
"memorysize:1024",
51+
"cold_start:false",
52+
"datadog_lambda:vX.X.X",
53+
"runtime:nodejs24.x"
54+
],
55+
"v": 1
56+
}
57+
{
58+
"e": XXXX,
59+
"m": "serverless.integration_test.execution",
60+
"t": [
61+
"tagkey:tagvalue",
62+
"eventsource:undefined",
63+
"dd_lambda_layer:datadog-nodev24.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 undefined 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_node24",
77+
"resource:integration-tests-js-XXXX-async-metrics_node24",
78+
"memorysize:1024",
79+
"cold_start:false",
80+
"datadog_lambda:vX.X.X",
81+
"runtime:nodejs24.x"
82+
],
83+
"v": 1
84+
}
85+
{
86+
"e": XXXX,
87+
"m": "serverless.integration_test.execution",
88+
"t": [
89+
"tagkey:tagvalue",
90+
"eventsource:undefined",
91+
"dd_lambda_layer:datadog-nodev24.XX.X"
92+
],
93+
"v": 1
94+
}
95+
END Duration: XXXX ms Memory Used: XXXX MB
96+
START
97+
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed undefined request
98+
{
99+
"e": XXXX,
100+
"m": "aws.lambda.enhanced.invocations",
101+
"t": [
102+
"region:eu-west-1",
103+
"account_id:XXXX",
104+
"functionname:integration-tests-js-XXXX-async-metrics_node24",
105+
"resource:integration-tests-js-XXXX-async-metrics_node24",
106+
"memorysize:1024",
107+
"cold_start:false",
108+
"datadog_lambda:vX.X.X",
109+
"runtime:nodejs24.x"
110+
],
111+
"v": 1
112+
}
113+
{
114+
"e": XXXX,
115+
"m": "serverless.integration_test.execution",
116+
"t": [
117+
"tagkey:tagvalue",
118+
"eventsource:undefined",
119+
"dd_lambda_layer:datadog-nodev24.XX.X"
120+
],
121+
"v": 1
122+
}
123+
END Duration: XXXX ms Memory Used: XXXX MB
124+
START
125+
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed undefined request
126+
{
127+
"e": XXXX,
128+
"m": "aws.lambda.enhanced.invocations",
129+
"t": [
130+
"region:eu-west-1",
131+
"account_id:XXXX",
132+
"functionname:integration-tests-js-XXXX-async-metrics_node24",
133+
"resource:integration-tests-js-XXXX-async-metrics_node24",
134+
"memorysize:1024",
135+
"cold_start:false",
136+
"datadog_lambda:vX.X.X",
137+
"runtime:nodejs24.x"
138+
],
139+
"v": 1
140+
}
141+
{
142+
"e": XXXX,
143+
"m": "serverless.integration_test.execution",
144+
"t": [
145+
"tagkey:tagvalue",
146+
"eventsource:undefined",
147+
"dd_lambda_layer:datadog-nodev24.XX.X"
148+
],
149+
"v": 1
150+
}
151+
END Duration: XXXX ms Memory Used: XXXX MB
152+
START
153+
{
154+
"e": XXXX,
155+
"m": "aws.lambda.enhanced.invocations",
156+
"t": [
157+
"region:eu-west-1",
158+
"account_id:XXXX",
159+
"functionname:integration-tests-js-XXXX-async-metrics_node24",
160+
"resource:integration-tests-js-XXXX-async-metrics_node24",
161+
"memorysize:1024",
162+
"cold_start:false",
163+
"datadog_lambda:vX.X.X",
164+
"runtime:nodejs24.x"
165+
],
166+
"v": 1
167+
}
168+
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed undefined request
169+
{
170+
"e": XXXX,
171+
"m": "serverless.integration_test.execution",
172+
"t": [
173+
"tagkey:tagvalue",
174+
"eventsource:undefined",
175+
"dd_lambda_layer:datadog-nodev24.XX.X"
176+
],
177+
"v": 1
178+
}
179+
END Duration: XXXX ms Memory Used: XXXX MB
180+
START
181+
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed undefined request
182+
{
183+
"e": XXXX,
184+
"m": "aws.lambda.enhanced.invocations",
185+
"t": [
186+
"region:eu-west-1",
187+
"account_id:XXXX",
188+
"functionname:integration-tests-js-XXXX-async-metrics_node24",
189+
"resource:integration-tests-js-XXXX-async-metrics_node24",
190+
"memorysize:1024",
191+
"cold_start:false",
192+
"datadog_lambda:vX.X.X",
193+
"runtime:nodejs24.x"
194+
],
195+
"v": 1
196+
}
197+
{
198+
"e": XXXX,
199+
"m": "serverless.integration_test.execution",
200+
"t": [
201+
"tagkey:tagvalue",
202+
"eventsource:undefined",
203+
"dd_lambda_layer:datadog-nodev24.XX.X"
204+
],
205+
"v": 1
206+
}
207+
END Duration: XXXX ms Memory Used: XXXX MB
208+
START
209+
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed SNS request
210+
{
211+
"e": XXXX,
212+
"m": "aws.lambda.enhanced.invocations",
213+
"t": [
214+
"region:eu-west-1",
215+
"account_id:XXXX",
216+
"functionname:integration-tests-js-XXXX-async-metrics_node24",
217+
"resource:integration-tests-js-XXXX-async-metrics_node24",
218+
"memorysize:1024",
219+
"cold_start:false",
220+
"datadog_lambda:vX.X.X",
221+
"runtime:nodejs24.x"
222+
],
223+
"v": 1
224+
}
225+
{
226+
"e": XXXX,
227+
"m": "serverless.integration_test.records_processed",
228+
"t": [
229+
"tagkey:tagvalue",
230+
"eventsource:SNS",
231+
"dd_lambda_layer:datadog-nodev24.XX.X"
232+
],
233+
"v": 1
234+
}
235+
{
236+
"e": XXXX,
237+
"m": "serverless.integration_test.execution",
238+
"t": [
239+
"tagkey:tagvalue",
240+
"eventsource:SNS",
241+
"dd_lambda_layer:datadog-nodev24.XX.X"
242+
],
243+
"v": 1
244+
}
245+
END Duration: XXXX ms Memory Used: XXXX MB
246+
START
247+
XXXX-XX-XX XX:XX:XX.XXX INFO [dd.trace_id=XXXX dd.span_id=XXXX] Processed SQS request
248+
{
249+
"e": XXXX,
250+
"m": "aws.lambda.enhanced.invocations",
251+
"t": [
252+
"region:eu-west-1",
253+
"account_id:XXXX",
254+
"functionname:integration-tests-js-XXXX-async-metrics_node24",
255+
"resource:integration-tests-js-XXXX-async-metrics_node24",
256+
"memorysize:1024",
257+
"cold_start:false",
258+
"datadog_lambda:vX.X.X",
259+
"runtime:nodejs24.x"
260+
],
261+
"v": 1
262+
}
263+
{
264+
"e": XXXX,
265+
"m": "serverless.integration_test.records_processed",
266+
"t": [
267+
"tagkey:tagvalue",
268+
"eventsource:SQS",
269+
"dd_lambda_layer:datadog-nodev24.XX.X"
270+
],
271+
"v": 1
272+
}
273+
{
274+
"e": XXXX,
275+
"m": "serverless.integration_test.records_processed",
276+
"t": [
277+
"tagkey:tagvalue",
278+
"eventsource:SQS",
279+
"dd_lambda_layer:datadog-nodev24.XX.X"
280+
],
281+
"v": 1
282+
}
283+
{
284+
"e": XXXX,
285+
"m": "serverless.integration_test.execution",
286+
"t": [
287+
"tagkey:tagvalue",
288+
"eventsource:SQS",
289+
"dd_lambda_layer:datadog-nodev24.XX.X"
290+
],
291+
"v": 1
292+
}
293+
END Duration: XXXX ms Memory Used: XXXX MB

0 commit comments

Comments
 (0)