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 a...»)
 
 
(не показаны 3 промежуточные версии 2 участников)
Строка 1: Строка 1:
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
'''''[[Поддержка технологий]] / Node.js'''''


== Capabilities            ==
Node.js - это серверный фреймворк, основанный на движке JavaScript V8 от Google. Node.js имеет асинхронную модель выполнения и часто используется для склейки или в качестве уровня прокси в корпоративных средах.
Dynatrace provides extensive Node.js monitoring capabilities:


* Heap and process metrics
== Возможности            ==
Ключ-Астром предоставляет обширные возможности мониторинга Node.js:
* Куча и метрики процесса
* Heap dumps
* Heap dumps
* CPU sampling (see known limitations)
*Выборка процессора (см. Известные ограничения)
* Event loop metrics
* Показатели цикла событий
* Insights into inbound and outbound HTTP calls
* Анализ входящих и исходящих HTTP-вызовов
* Dedicated support for a variety of databases (includes query capture)
*Выделенная поддержка для множества баз данных (включая захват запросов)
* Capturing OpenTelemetry traces
*Захват следов OpenTelemetry
* OneAgent SDK for custom tracing
*ЕдиныйАгент SDK для пользовательской трассировки
См. Нашу матрицу поддерживаемых технологий для получения подробной информации о поддерживаемых технологиях, которые будут использоваться вместе с Node.js.


See our supported technologies matrix for details about supported technologies that will be used in conjunction with Node.js.
== Поддержка и отказ от поддержки            ==
Node.js следует модели выпуска LTS.


== Support & desupport            ==
Каждая версия с нечетным номером достигает EOL вскоре после выпуска каждой новой версии с четным номером. Каждая четная версия в конечном итоге становится LTS-выпуском. Для корпоративных производственных сред мы рекомендуем придерживаться выпусков LTS.
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 recommend that you stick to LTS releases.
Каждый раз, когда выпускается новая основная версия Node.js (четная или нечетная), мы добавляем поддержку этой версии.


Whenever a new Node.js major version (even or uneven) is released, we add support for that version.
Ключ-Астром будет следовать этой модели поддержки, но будет поддерживать каждую версию Node.js как минимум на полгода дольше, чтобы у наших клиентов было время для обновлений.
 
Dynatrace 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.
{| class="wikitable"
{| class="wikitable"
!Node.js version
!Node.js version
!Vendor released
!Выпущено вендором
!Vendor End of life
!Конец поддержки вендором
!Supported by Dynatrace until
!Первая поддерживаемая версия ЕдиногоАгена
!First supported Dynatrace OneAgent version
!Последняя поддерживаемая версия ЕдиногоАгента
!Last supported Dynatrace OneAgent version
!Поддержка Ключ-Астром до
!Уровень поддержки Ключ-Астром
|-
|18
|2022-04-19
|2025-04-30
|1.243
| -
|2026-04-30
|Поддерживается<sup>1</sup>
|-
|17
|2021-10-19
|2022-06-01
|1.235
| -
|2022-12-01
|Поддерживается
|-
|-
|16
|16
|2021/04/20
|2021-04-20
|2024/04/30
|2024-04-30
|2025/04/30
|1.219
|1.219
|
| -
|2025-04-30
|Поддерживается
|-
|-
|15
|15
|2020/10/20
|2020-10-20
|2021/06/01
|2021-06-01
|2021/12/01
|1.207
|1.207
|
|1.233
|2021-12-01
|Не поддерживается
|-
|-
|14
|14
|2020/04/21
|2020-04-21
|2023/04/30
|2023-04-30
|2024/04/30
|1.195
|1.195
|
| -
|2024-04-30
|Поддерживается
|-
|-
|13
|13
|2019/10/22
|2019-10-22
|2020/06/01
|2020-06-01
|2020/12/01
|1.183
|1.183
|1.205
|1.205
|2020-12-01
|Не поддерживается
|-
|-
|12
|12
|2019/04/23
|2019-04-23
|2022/04/30
|2022-04-30
|2023/04/30
|1.171
|1.171
|
| -
|2023-04-30
|Поддерживается
|-
|-
|11
|11
|2018/10/23
|2018-10-23
|2019/06/30
|2019-06-30
|2019/12/31
|1.159
|
|1.181
|1.181
|2019-12-31
|Не поддерживается
|-
|-
|10
|10
|2015/04/24
|2015-04-24
|2021/04/30
|2021-04-30
|2022/04/30
|1.147
|
| -
|
|2022-04-30
|Ограничено<sup>2</sup>
|-
|-
|9
|9
|2017/10/01
|2017-10-01
|2018/06/30
|2018-06-30
|2018/12/31
| -
|
|1.157
|1.157
|2018-12-31
|Не поддерживается
|-
|-
|8
|8
|2017/05/30
|2017-05-30
|2019/12/31
|2019-12-31
|2020/12/31
| -
|
|1.239
|
|2020-12-31
|-
|Не поддерживается
|7
|2015/10/25
|2016/07/30
|2017/11/30
|
|1.131
|-
|6
|2016/04/26
|2019/04/30
|2019/10/31
|
|1.179
|-
|5
|2015/10/29
|2016/06/30
|2017/10/31
|
|1.129
|-
|4
|2015/09/08
|2018/04/30
|2018/12/31
|
|1.157
|-
|0.12
|2015/02/06
|2016/12/31
|2017/10/31
|
|1.129
|-
|0.10
|2013/03/01
|
|2017/10/31
|
|1.129
|}
|}
<sup>1</sup> Новые функции Node.js 18, помеченные как «экспериментальные», не поддерживаются.


== Known limitations            ==
<sup>2</sup> Ограниченная поддержка: Ключ-Астром может решать только те проблемы, которые можно воспроизвести в поддерживаемых версиях.
 
* 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 ONE product specialist by clicking the chat button in the upper-right corner of the Dynatrace menu bar.
* 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 <code>esm</code> via the <code>-r</code> 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 <code>kafkajs</code> 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 which need to be instrumented by the OneAgent (e.g. express, mongodb, pg,…) have to be externalized in the webpack configuration. See webpack Externals documentation for details.
* '''Ambient Sampling''' limitations for certain OneAgent versions: Google V8 is affected by a series of memory and CPU overhead issues, which is a blocker for production-level background CPU profiling:
** memory leak
** excessive peak memory consumption
** excessive CPU overhead on Windows systems  Therefore, CPU profiling (ambient sampling) is not enabled by default for all OneAgent versions:
** Ambient sampling is '''enabled''' by default as of OneAgent version 1.181  As of OneAgent version 1.181 the above limitations have been resolved by not using v8 CpuProfiler for Ambient Sampling. Ambient Sampling is fully available on all supported platforms and all supported Node.js versions without any restrictions.
** Ambient sampling is '''disabled''' by default for OneAgent versions 1.157 up to 1.179  On ''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  On ''Windows'' ambient sampling is disabled for these OneAgent versions, because it would cause 100% CPU usage for one CPU. OneAgent records a log entry for each unsupported version it detects:  <code>AmbientSampling: <unsupported platform> / <node version></code>


== Further reading           ==
== Известные ограничения           ==


* How do I monitor Cloud Foundry applications?
*Из-за ограничений платформы JavaScript и Node.js видимость на уровне кода ограничена по сравнению с .NET или Java.
* Blog: Understanding Garbage Collection and hunting Memory Leaks in Node.js
*В сочетании с неподдерживаемыми сторонними модулями контекст может быть потерян в асинхронных обратных вызовах. В таких случаях свяжитесь со специалистом по продуктам Ключ-Астром ONE, нажав кнопку чата в правом верхнем углу строки меню Ключ-Астром.
* Blog: How to track down CPU issues in Node.js
*Использование модуля esm NPM в варианте 1 для пакетов может привести к снижению видимости (особенно если используется для основного сценария приложения). Предпочтительно использовать вариант 2 для предварительной загрузки esm с помощью параметра командной строки -r.
* Blog: All you need to know to really understand the Node.js Event Loop and its Metrics
*В настоящее время существует только ограниченная поддержка модулей ECMAScript (также известных как «модули ES6»):
**Если сам основной файл сценария представляет собой модуль ECMAScript, для внедрения ЕдиногоАгента в процесс Node.js требуется ЕдиныйАгент версии 1.219+ с включенной предварительной загрузкой агента.
**Инструментарий модулей ECMAScript в настоящее время недоступен. Это ограничивает поддержку kafkajs, если определяемая пользователем точка входа для сенсора KafkaJs находится внутри модуля ECMAScript.
*'''Webpack''' по умолчанию объединяет все модули в один файл. ЕдиныйАгент не может инструментировать связанные модули. Чтобы обойти это ограничение, все модули, которые должны быть инструментированы ЕдинымАгентом (такие как express, mongodb и pg), должны быть внешними в конфигурации веб-пакета. Подробнее см. в документации по внешним компонентам webpack.

Текущая версия на 15:28, 15 августа 2023

Поддержка технологий / Node.js

Node.js - это серверный фреймворк, основанный на движке JavaScript V8 от Google. Node.js имеет асинхронную модель выполнения и часто используется для склейки или в качестве уровня прокси в корпоративных средах.

Возможности

Ключ-Астром предоставляет обширные возможности мониторинга Node.js:

  • Куча и метрики процесса
  • Heap dumps
  • Выборка процессора (см. Известные ограничения)
  • Показатели цикла событий
  • Анализ входящих и исходящих HTTP-вызовов
  • Выделенная поддержка для множества баз данных (включая захват запросов)
  • Захват следов OpenTelemetry
  • ЕдиныйАгент SDK для пользовательской трассировки

См. Нашу матрицу поддерживаемых технологий для получения подробной информации о поддерживаемых технологиях, которые будут использоваться вместе с Node.js.

Поддержка и отказ от поддержки

Node.js следует модели выпуска LTS.

Каждая версия с нечетным номером достигает EOL вскоре после выпуска каждой новой версии с четным номером. Каждая четная версия в конечном итоге становится LTS-выпуском. Для корпоративных производственных сред мы рекомендуем придерживаться выпусков LTS.

Каждый раз, когда выпускается новая основная версия Node.js (четная или нечетная), мы добавляем поддержку этой версии.

Ключ-Астром будет следовать этой модели поддержки, но будет поддерживать каждую версию Node.js как минимум на полгода дольше, чтобы у наших клиентов было время для обновлений.

Node.js version Выпущено вендором Конец поддержки вендором Первая поддерживаемая версия ЕдиногоАгена Последняя поддерживаемая версия ЕдиногоАгента Поддержка Ключ-Астром до Уровень поддержки Ключ-Астром
18 2022-04-19 2025-04-30 1.243 - 2026-04-30 Поддерживается1
17 2021-10-19 2022-06-01 1.235 - 2022-12-01 Поддерживается
16 2021-04-20 2024-04-30 1.219 - 2025-04-30 Поддерживается
15 2020-10-20 2021-06-01 1.207 1.233 2021-12-01 Не поддерживается
14 2020-04-21 2023-04-30 1.195 - 2024-04-30 Поддерживается
13 2019-10-22 2020-06-01 1.183 1.205 2020-12-01 Не поддерживается
12 2019-04-23 2022-04-30 1.171 - 2023-04-30 Поддерживается
11 2018-10-23 2019-06-30 1.159 1.181 2019-12-31 Не поддерживается
10 2015-04-24 2021-04-30 1.147 - 2022-04-30 Ограничено2
9 2017-10-01 2018-06-30 - 1.157 2018-12-31 Не поддерживается
8 2017-05-30 2019-12-31 - 1.239 2020-12-31 Не поддерживается

1 Новые функции Node.js 18, помеченные как «экспериментальные», не поддерживаются.

2 Ограниченная поддержка: Ключ-Астром может решать только те проблемы, которые можно воспроизвести в поддерживаемых версиях.

Известные ограничения

  • Из-за ограничений платформы JavaScript и Node.js видимость на уровне кода ограничена по сравнению с .NET или Java.
  • В сочетании с неподдерживаемыми сторонними модулями контекст может быть потерян в асинхронных обратных вызовах. В таких случаях свяжитесь со специалистом по продуктам Ключ-Астром ONE, нажав кнопку чата в правом верхнем углу строки меню Ключ-Астром.
  • Использование модуля esm NPM в варианте 1 для пакетов может привести к снижению видимости (особенно если используется для основного сценария приложения). Предпочтительно использовать вариант 2 для предварительной загрузки esm с помощью параметра командной строки -r.
  • В настоящее время существует только ограниченная поддержка модулей ECMAScript (также известных как «модули ES6»):
    • Если сам основной файл сценария представляет собой модуль ECMAScript, для внедрения ЕдиногоАгента в процесс Node.js требуется ЕдиныйАгент версии 1.219+ с включенной предварительной загрузкой агента.
    • Инструментарий модулей ECMAScript в настоящее время недоступен. Это ограничивает поддержку kafkajs, если определяемая пользователем точка входа для сенсора KafkaJs находится внутри модуля ECMAScript.
  • Webpack по умолчанию объединяет все модули в один файл. ЕдиныйАгент не может инструментировать связанные модули. Чтобы обойти это ограничение, все модули, которые должны быть инструментированы ЕдинымАгентом (такие как express, mongodb и pg), должны быть внешними в конфигурации веб-пакета. Подробнее см. в документации по внешним компонентам webpack.