Отслеживание событий¶
Стабильность: 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и специальное свойствоtriggerIdtriggerAsyncId.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 | |