Node.js is a server-side framework based on the V8 JavaScript engine by Google. Node.js has an asynchronous execution model and is frequently used for gluing or as a proxy tier within enterprise environments.
Dynatrace provides extensive Node.js monitoring capabilities:
See our supported technologies matrix for details about supported technologies that will be used in conjunction with Node.js.
Node.js follows an LTS release model.
For Node.js v25 and earlier, odd-numbered versions reach EOL shortly after the next even-numbered version is released, while even-numbered versions eventually become LTS releases. For enterprise production environments, we highly recommend using LTS releases.
Starting with Node.js v27, the release model changes: each major version goes through an unstable and then a stable stage, with all versions eventually becoming LTS releases and one major version released per year. For details, see Evolving the Node.js Release Schedule.
Whenever a new Node.js major version is released, we add support for that version.
Dynatrace extends support for each Node.js version by at least six months beyond the official end-of-life date. For LTS releases, support continues for at least one year after end-of-life, giving you more time to upgrade.
Note that only official Node.js versions are supported.
| Node.js version | Vendor released | Vendor End of life | First supported Dynatrace OneAgent version | Last supported Dynatrace OneAgent version | Dynatrace support until | Dynatrace support level |
|---|---|---|---|---|---|---|
| 25 | 2025-10-15 | 2026-06-01 | 1.333 | - | 2026-12-01 | Supported |
| 24 | 2025-05-06 | 2028-04-30 | 1.329 | - | 2029-04-30 | Supported |
| 23 | 2024-10-16 | 2025-06-01 | 1.305 | 1.329 | 2025-12-01 | Not supported |
| 22 | 2024-04-23 | 2027-04-30 | 1.295 | - | 2028-04-30 | Supported |
| 21 | 2023-10-17 | 2024-06-01 | 1.281 | 1.303 | 2024-12-01 | Not supported |
| 20 | 2023-04-18 | 2026-04-30 | 1.271 | - | 2027-04-30 | Supported |
| 19 | 2022-10-18 | 2023-06-01 | 1.257 | 1.285 | 2023-12-01 | Not supported |
| 18 | 2022-04-19 | 2025-04-30 | 1.243 | - | 2026-04-30 | Supported |
| 17 | 2021-10-19 | 2022-06-01 | 1.235 | 1.265 | 2022-12-01 | Not supported |
| 16 | 2021-04-20 | 2023-09-11 | 1.219 | - | 2024-09-11 | Limited1 |
| 15 | 2020-10-20 | 2021-06-01 | 1.207 | 1.233 | 2021-12-01 | Not supported |
| 14 | 2020-04-21 | 2023-04-30 | 1.195 | - | 2024-04-30 | Limited1 |
| 13 | 2019-10-22 | 2020-06-01 | 1.183 | 1.205 | 2020-12-01 | Not supported |
| 12 | 2019-04-23 | 2022-04-30 | 1.171 | - | 2023-04-30 | Limited1 |
| 11 | 2018-10-23 | 2019-06-30 | 1.159 | 1.181 | 2019-12-31 | Not supported |
| 10 | 2015-04-24 | 2021-04-30 | 1.147 | 1.329 | 2022-04-30 | Not supported2 |
| 9 | 2017-10-01 | 2018-06-30 | - | 1.157 | 2018-12-31 | Not supported |
| 8 | 2017-05-30 | 2019-12-31 | - | 1.239 | 2020-12-31 | Not supported |
Node.js version 12+ OneAgent version 1.251+ Dynatrace version 1.256+
Continuous thread analysis for worker threads can automatically identify CPU-intensive threads and pinpoint scalability issues when work is distributed across many threads so that you can solve performance bottlenecks before your end users are impacted.
Statistics about the main and worker threads:

CPU time consumed by the various worker threads:

To get started with the continuous thread analysis for worker threads, activate the OneAgent features Node.js worker threads monitoring and Node.js code module preloading.
Node.js specific metrics (for example, memory, garbage collection, and event-loops) are only reported for the main thread.
Class browsing (required for the custom messaging services of kafkajs) is limited to the main thread.
There is no automatic transaction tracing in place between the main and worker threads. For tracing transactions across threads, you can either use OpenTelemetry tracing or the OneAgent SDK.
Due to platform limitations of JavaScript and Node.js, code-level visibility is limited compared to .NET or Java.
In conjunction with unsupported third-party modules, context can be lost in asynchronous callbacks. In such cases, please contact a Dynatrace product expert via live chat within your Dynatrace environment.
OneAgent version 1.279+ CPU times are not reported for Node.js services. These numbers were misleading, since by design a major part of any operation is handled asynchronously inside the Node.js runtime without the possibility to correlate the actual CPU time to a specific service.
Web Streams, WebSocket Client are not supported.
Node.js features marked as 'experimental' are not supported.
Using the NPM module esm in variant 1 for packages might result in reduced visibility (especially if used for the main application script). It's preferable to use variant 2 to preload esm via the -r command line option.
There is currently only limited support for ECMAScript modules (aka "ES6 modules"):
If the main script file itself is an ECMAScript module OneAgent version 1.219+ with Agent preloading enabled is needed for the OneAgent to be injected into the Node.js process.
Instrumentation of ECMAScript modules is currently not available. This limits support for kafkajs in case the user defined entrypoint for the KafkaJs sensor is inside an ECMAScript module.
Webpack bundles all modules into a single file by default. OneAgent is unable to instrument bundled modules. To work around this limitation, all modules that need to be instrumented by OneAgent (such as express, mongodb, and pg) need to be externalized in the webpack configuration. For details, see the webpack externals documentation.
Using Webpack or other bundlers might also have an impact on automatic vulnerability detection. This is because the software components cannot be detected, as they are hidden behind the bundler configuration and not available at runtime. Only packages that are deployed as external packages can be detected and reported.