Node.js: различия между версиями
IKolomin (обсуждение | вклад) |
Lobanov (обсуждение | вклад) |
||
Строка 23: | Строка 23: | ||
{| class="wikitable" | {| class="wikitable" | ||
!Node.js version | !Node.js 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 | |2021-04-20 | ||
|2024 | |2024-04-30 | ||
|1.219 | |1.219 | ||
| | | - | ||
|2025-04-30 | |||
|Поддерживается | |||
|- | |- | ||
|15 | |15 | ||
|2020 | |2020-10-20 | ||
|2021 | |2021-06-01 | ||
|1.207 | |1.207 | ||
| | |1.233 | ||
|2021-12-01 | |||
|Не поддерживается | |||
|- | |- | ||
|14 | |14 | ||
|2020 | |2020-04-21 | ||
|2023 | |2023-04-30 | ||
|1.195 | |1.195 | ||
| | | - | ||
|2024-04-30 | |||
|Поддерживается | |||
|- | |- | ||
|13 | |13 | ||
|2019 | |2019-10-22 | ||
|2020 | |2020-06-01 | ||
|1.183 | |1.183 | ||
|1.205 | |1.205 | ||
|2020-12-01 | |||
|Не поддерживается | |||
|- | |- | ||
|12 | |12 | ||
|2019 | |2019-04-23 | ||
|2022 | |2022-04-30 | ||
|1.171 | |1.171 | ||
| | | - | ||
|2023-04-30 | |||
|Поддерживается | |||
|- | |- | ||
|11 | |11 | ||
|2018 | |2018-10-23 | ||
|2019 | |2019-06-30 | ||
| | |1.159 | ||
|1.181 | |1.181 | ||
|2019-12-31 | |||
|Не поддерживается | |||
|- | |- | ||
|10 | |10 | ||
|2015 | |2015-04-24 | ||
|2021 | |2021-04-30 | ||
|2022 | |1.147 | ||
| | | - | ||
|2022-04-30 | |||
|Ограничено<sup>2</sup> | |||
|- | |- | ||
|9 | |9 | ||
|2017 | |2017-10-01 | ||
|2018 | |2018-06-30 | ||
| | | - | ||
|1.157 | |1.157 | ||
|2018-12-31 | |||
|Не поддерживается | |||
|- | |- | ||
|8 | |8 | ||
|2017 | |2017-05-30 | ||
|2019 | |2019-12-31 | ||
| - | |||
|1.239 | |||
|2020-12-31 | |||
|Не поддерживается | |||
|- | |||
|1. | |||
|- | |||
| | |||
|} | |} | ||
<sup>1</sup> Новые функции Node.js 18, помеченные как «экспериментальные», не поддерживаются. | |||
<sup>2</sup> Ограниченная поддержка: Ключ-Астром может решать только те проблемы, которые можно воспроизвести в поддерживаемых версиях. | |||
== Известные ограничения == | == Известные ограничения == | ||
*Из-за ограничений платформы JavaScript и Node.js видимость на уровне кода ограничена по сравнению с .NET или Java. | *Из-за ограничений платформы JavaScript и Node.js видимость на уровне кода ограничена по сравнению с .NET или Java. | ||
* В сочетании с неподдерживаемыми сторонними модулями контекст может быть потерян в асинхронных обратных вызовах. В таких случаях свяжитесь со специалистом по | *В сочетании с неподдерживаемыми сторонними модулями контекст может быть потерян в асинхронных обратных вызовах. В таких случаях свяжитесь со специалистом по продуктам Ключ-Астром ONE, нажав кнопку чата в правом верхнем углу строки меню Ключ-Астром. | ||
*Использование модуля NPM | *Использование модуля esm NPM в варианте 1 для пакетов может привести к снижению видимости (особенно если используется для основного сценария приложения). Предпочтительно использовать вариант 2 для предварительной загрузки esm с помощью параметра командной строки -r. | ||
*В настоящее время существует только ограниченная поддержка модулей ECMAScript (также известных как «модули ES6»): | *В настоящее время существует только ограниченная поддержка модулей ECMAScript (также известных как «модули ES6»): | ||
**Если сам основной файл сценария | **Если сам основной файл сценария представляет собой модуль ECMAScript, для внедрения ЕдиногоАгента в процесс Node.js требуется ЕдиныйАгент версии 1.219+ с включенной предварительной загрузкой агента. | ||
** Инструментарий модулей ECMAScript в настоящее время недоступен. Это ограничивает поддержку kafkajs | **Инструментарий модулей ECMAScript в настоящее время недоступен. Это ограничивает поддержку kafkajs, если определяемая пользователем точка входа для сенсора KafkaJs находится внутри модуля ECMAScript. | ||
* | *'''Webpack''' по умолчанию объединяет все модули в один файл. ЕдиныйАгент не может инструментировать связанные модули. Чтобы обойти это ограничение, все модули, которые должны быть инструментированы ЕдинымАгентом (такие как express, mongodb и pg), должны быть внешними в конфигурации веб-пакета. Подробнее см. в документации по внешним компонентам webpack. | ||
Версия 17:12, 24 ноября 2022
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.