Node.js

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.

Capabilities

DESK provides extensive Node.js monitoring capabilities:

  • Heap and process metrics
  • Heap dumps
  • CPU sampling (see known limitations)
  • Event loop metrics
  • Insights into inbound and outbound HTTP calls
  • Dedicated support for a variety of databases (includes query capture)
  • OneAgent SDK for custom tracing

See our supported technologies matrix for details about supported technologies that will be used in conjunction with Node.js.

Support & desupport

Node.js follows an LTS release model.

Each odd-numbered version reaches EOL shortly after each new even-numbered version is released. Each even-numbered version eventually becomes an LTS release. For enterprise production environments, we recommended that you stick to LTS releases.

Whenever a new Node.js major version (even or uneven) is released, we add support for that version.

DESK will follow this support model, but will support each Node.js version at least half a year longer to give our customers time for upgrades.

Node.js version Vendor released Vendor End of life Supported by DESK until First supported OneAgent Version Last supported OneAgent Version
0.10 2013-03-01 2017-10-31 1.129
0.12 2015-02-06 2016-12-31 2017-10-31 1.129
4 2015-09-08 2018-04-31 2018-12-31 1.157
5 2015-10-29 2016-06-30 2017-10-31 1.129
6 2016-04-26 2019-04-30 2019-10-31 1.179
7 2015-10-25 2016-07-30 2017-11-30 1.131
8 2017-05-30 2019-12-31 2020-06-30
9 2017-10-01 2018-06-30 2018-12-31 1.157
10 2015-04-24 2021-04-31 2021-10-31
11 2018-10-23 2019-06-30 2019-12-31 1.181
12 2019-04-23 2022-04-30 2022-10-31 1.171
13 2019-10-22 2020-06-01 2020-12-01 1.183

Known limitations

  • 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 DESK ONE product specialist by clicking the chat button in the upper-right corner of the DESK menu bar.

  • Using NPM module esm in variant 1 for packages may result in reduced visibility (in special if used for main application script). Prefer using variant 2 to preload esm via -r command line option.

  • Google V8 is affected by a series of memory and CPU overhead issues, which is a blocker for production-level background CPU profiling. Therefore, CPU profiling will be disabled in the future. For now, if you run into this issue, please disable it in the deep monitoring settings.

  • Ambient sampling is disabled by default as of OneAgent version 1.157
    Node.js version 4 is not supported due to sporadic crashes.

    Linux:
    Ambient sampling can be enabled for the following Node.js versions:

    • Node.js version 6
    • Node.js versions ^8.9.4 (8.9.4 <= node.js < 9.0.0)
    • Node.js version 9.3.0 or later

    Windows:
    Ambient sampling is disabled by default because it causes 100% CPU usage for one CPU.

    OneAgent records a log entry for each unsupported version it detects:
    AmbientSampling: <unsupported platform> / <node version>

  • Ambient sampling is enabled by default as of OneAgent version 1.181
    As of OneAgent version 1.181 the above limitations have been resolved. Ambient sampling is fully available on all supported platforms, all supported Node.js versions without restrictions and is enabled by default.

Further reading