Node.js
Поддержка технологий / 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 | Выпущено вендором | Конец поддержки вендором | Первая поддерживаемая версия ЕдиногоАгена | Последняя поддерживаемая версия ЕдиногоАгента | Поддержка Ключ-Астром до | Уровень поддержки Ключ-Астром |
|---|---|---|---|---|---|---|
| 23 | 2024-10-16 | 2025-06-01 | 1.305 | - | 2025-12-01 | Поддерживается 1 |
| 22 | 2024-04-23 | 2027-04-30 | 1.295 | - | 2028-04-30 | Поддерживается 1 |
| 21 | 2023-10-17 | 2024-06-01 | 1.281 | 1.303 | 2024-12-01 | Не поддерживается |
| 20 | 2023-04-18 | 2026-04-30 | 1.271 | - | 2027-04-30 | Поддерживается 1 |
| 19 | 2022-10-18 | 2023-06-01 | 1.257 | 1.285 | 2023-12-01 | Не поддерживается |
| 18 | 2022-04-19 | 2025-04-30 | 1.243 | - | 2026-04-30 | Поддерживается 2 |
| 17 | 2021-10-19 | 2022-06-01 | 1.235 | - | 2022-12-01 | Не поддерживается |
| 16 | 2021-04-20 | 2024-04-30 | 1.219 | - | 2025-04-30 | Ограничено 3 |
| 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 | Ограничено 3 |
| 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 | Ограничено 3 |
| 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 | Устарело 4 |
| 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 Веб-потоки, клиент WebSocket и функции, помеченные как «экспериментальные», не поддерживаются.
2 Для поддержки архитектуры ЦП s390x требуется ЕдиныйАгент версии 1.271+.
3 Ограниченная поддержка: Ключ-АСТРОМ может решить только те проблемы, которые можно воспроизвести в поддерживаемых версиях.
4 Устарело: инструментирование отключено по умолчанию в ЕдиныйАгент версии 1.321 и выше. Для включения инструментария определите переменную среды DT_SUPPORT_DEPRECATED_NODE_VERSIONS.
Непрерывный анализ для рабочих потоков
Node.js версии 12+ ЕдиныйАгент версии 1.251+ Ключ-АСТРОМ версии 1.256+
Непрерывный анализ рабочих потоков позволяет автоматически определять потоки с высокой загрузкой процессора и точно определять проблемы масштабируемости, когда работа распределена между несколькими потоками. Это позволяет устранить узкие места производительности до того, как это повлияет на конечных пользователей.
Чтобы начать непрерывный анализ рабочих потоков, активируйте функции ЕдиногоАгента: мониторинг рабочих потоков Node.js и предварительную загрузку модуля кода Node.js.
| Ограничения
Метрики, специфичные для Node.js (например, память, сборка мусора и циклы событий), сообщаются только для потока Просмотр классов (необходимый для пользовательских служб обмена сообщениями kafkajs) ограничен потоком |
Автоматическая трассировка main транзакций между потоками и не реализована worker. Для трассировки транзакций между потоками можно использовать трассировку OpenTelemetry или ЕдиныйАгент SDK.
Известные ограничения
- Из-за ограничений платформы JavaScript и Node.js видимость на уровне кода ограничена по сравнению с .NET или Java.
- В сочетании с неподдерживаемыми сторонними модулями контекст может быть потерян в асинхронных обратных вызовах. В таких случаях обратитесь к эксперту по продукту Ключ-АСТРОМ через онлайн-чат в вашей среде Ключ-АСТРОМ.
ЕдиныйАгент версии 1.279+Время ЦП для сервисов Node.js не указывается. Эти цифры вводили в заблуждение, поскольку по умолчанию большая часть любой операции выполняется асинхронно внутри среды выполнения Node.js, без возможности соотнести фактическое время ЦП с конкретным сервисом.- Использование модуля NPM esm в варианте 1 для пакетов может привести к снижению видимости (особенно при использовании для основного скрипта приложения). Предпочтительнее использовать вариант 2 для предварительной загрузки
esmчерез командную строку-r. - В настоящее время существует только ограниченная поддержка модулей ECMAScript (также известных как «модули ES6»):
- Если основной файл скрипта представляет собой модуль ECMAScript, то для внедрения ЕдиногоАгента в процесс Node.js необходим ЕдиныйАгент версии 1.219+ с включенной предварительной загрузкой агента.
- Инструментирование модулей ECMAScript в настоящее время недоступно. Это ограничивает поддержку
kafkajsв случае, если пользовательская точка входа для датчика KafkaJs находится внутри модуля ECMAScript.
- По умолчанию Webpack объединяет все модули в один файл. ЕдиныйАгент не может инструментировать связанные модули. Чтобы обойти это ограничение, все модули, которые необходимо инструментировать с помощью ЕдиногоАгента (например,
express,mongodbиpg), необходимо вынести в конфигурацию Webpack как внешние. Подробнее см. в документации по внешним модулям Webpack. - Использование Webpack или других сборщиков пакетов также может повлиять на автоматическое обнаружение уязвимостей. Это связано с тем, что компоненты программного обеспечения не могут быть обнаружены, поскольку они скрыты за конфигурацией сборщика пакетов и недоступны во время выполнения. Обнаружение и составление отчётов возможны только для пакетов, развёрнутых как внешние.
Журналы процессов с помощью анализаторов технологических пакетов
Через OpenPipeline можно использовать и настраивать технологические пакеты. Технологический пакет — это библиотека парсеров (правил обработки), которые обрабатывают журналы различных технологий, таких как Java, .NET, Microsoft IIS и т. д.
Парсеры помогают улучшить фильтрацию, устранение неполадок, метрики, оповещения и панели мониторинга, эффективно извлекая уровни журналов и соответствующие атрибуты. Вы также можете использовать пакеты технологий для структурирования журналов, созданных с использованием технологий, которые не поддерживаются Ключ-АСТРОМ изначально.