Отслеживание событий¶
Стабильность: 1 – Экспериментальная
Фича изменяется и не допускается флагом командной строки. Может быть изменена или удалена в последующих версиях.
Модуль node:trace_events
предоставляет механизм для централизации информации о трассировке, генерируемой V8, ядром Node.js и кодом пользовательского пространства.
Трассировка может быть включена с помощью флага командной строки --trace-event-categories
или с помощью модуля node:trace_events
. Флаг --trace-event-categories
принимает список имен категорий, разделенных запятыми.
Доступны следующие категории:
node
: Пустой заполнитель.node.async_hooks
: Включает захват подробных данных трассировкиasync_hooks
. Событияasync_hooks
имеют уникальныйasyncId
и специальное свойствоtriggerId
triggerAsyncId
.node.bootstrap
: Позволяет перехватывать вехи загрузки Node.js.node.console
: Включает захват выводаconsole.time()
иconsole.count()
.node.threadpoolwork.sync
: Включает захват данных трассировки для синхронных операций пула потоков, таких какblob
,zlib
,crypto
иnode_api
.node.threadpoolwork.async
: Включает захват данных трассировки для асинхронных операций threadpool, таких какblob
,zlib
,crypto
иnode_api
.node.dns.native
: Включает захват данных трассировки для DNS-запросов.node.net.native
: Включает захват данных трассировки для сети.node.environment
: Включает захват вех окружения Node.js.node.fs.sync
: Включает захват данных трассировки для методов синхронизации файловой системы.node.fs_dir.sync
: Включает захват данных трассировки для методов синхронизации каталогов файловой системы.node.fs.async
: Включает захват данных трассировки для асинхронных методов файловой системы.node.fs_dir.async
: Включает захват данных трассировки для асинхронных методов каталогов файловой системы.node.perf
: Включает захват измерений Performance API.node.perf.usertiming
: Включает захват только мер и меток пользовательского тайминга Performance API.node.perf.timerify
: Включает захват только измерений таймерификации API производительности.
node.promises.rejections
: Включает захват данных трассировки, отслеживающих количество необработанных отказов Promise и обработанных после отказов.node.vm.script
: Позволяет перехватывать данные трассировки для методовnode:vm
модуляrunInNewContext()
,runInContext()
иrunInThisContext()
.v8
: События V8 связаны с GC, компиляцией и выполнением.node.http
: Включает захват данных трассировки для http-запросов/ответов.
По умолчанию включены категории node
, node.async_hooks
и v8
.
1 |
|
Предыдущие версии Node.js требовали использования флага --trace-events-enabled
для включения трассировки событий. Это требование было удалено. Однако флаг --trace-events-enabled
может по-прежнему использоваться и по умолчанию будет включать категории событий трассировки node
, node.async_hooks
и v8
.
1 2 3 4 5 6 7 |
|
В качестве альтернативы, трассировка событий может быть включена с помощью команды
Модуль node:trace_events
¶
Объект Tracing
¶
Объект Tracing
используется для включения или отключения трассировки для наборов категорий. Экземпляры создаются с помощью метода trace_events.createTracing()
.
При создании объект Tracing
отключается. Вызов метода tracing.enable()
добавляет категории в набор включенных категорий событий трассировки. Вызов метода tracing.disable()
удаляет категории из набора включенных категорий событий трассировки.
tracing.categories
¶
Список категорий событий трассировки, охватываемых этим объектом Tracing
, разделенный запятыми.
tracing.disable()
¶
Отключает данный объект Tracing
.
Только категории событий трассировки, не охваченные другими включенными объектами Tracing
и не указанные флагом --trace-event-categories
, будут отключены.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
tracing.enable()
¶
Включает данный объект Tracing
для набора категорий, охватываемых объектом Tracing
.
tracing.enabled
¶
<boolean>
true
только если объектTracing
был включен.
trace_events.createTracing(options)
¶
options
<Object>
categories
<string[]>
Массив имен категорий трассировки. Значения, включенные в массив, по возможности приводятся к строке. Если значение не может быть приведено к строке, будет выдана ошибка.
- Возвращает: {Tracing}.
Создает и возвращает объект Tracing
для заданного набора категорий
.
1 2 3 4 5 6 |
|
trace_events.getEnabledCategories()
¶
- Возвращает:
<string>
Возвращает список всех включенных в данный момент категорий событий трассировки, разделенных запятыми. Текущий набор включенных категорий событий трассировки определяется объединением всех включенных в данный момент объектов Tracing
и любых категорий, включенных с помощью флага --trace-event-categories
.
Учитывая файл test.js
ниже, команда node --trace-event-categories node.perf test.js
выведет 'node.async_hooks,node.perf'
на консоль.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
Примеры¶
Сбор данных о событиях трассировки с помощью инспектора¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
|