trace_events
Все экспортируемые элементы являются неработающими заглушками.
Модуль node:trace_events предоставляет механизм централизованного сбора данных трассировки, генерируемых V8, ядром Node.js и пользовательским кодом.
Трассировку можно включить с помощью флага командной строки --trace-event-categories или модуля 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: включает сбор данных трассировки асинхронных операций пула потоков, таких как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: включает сбор измерений API производительности.-
node.perf.usertiming: включает сбор только пользовательских измерений и меток времени API производительности. -
node.perf.timerify: включает сбор только измерений timerify API производительности.
-
-
node.promises.rejections: включает сбор данных трассировки, отслеживающих количество необработанных отклонений Promise и отклонений, обработанных после возникновения. -
node.vm.script: включает сбор данных трассировки для методовrunInNewContext(),runInContext()иrunInThisContext()модуляnode:vm. -
v8: события V8 связаны со сборкой мусора, компиляцией и выполнением. -
node.http: включает сбор данных трассировки HTTP-запросов и ответов.
По умолчанию включены категории node, node.async_hooks и v8.
node --trace-event-categories v8,node,node.async_hooks server.js
В предыдущих версиях Node.js для включения событий трассировки требовалось использовать флаг --trace-events-enabled. Это требование было отменено. Однако флаг --trace-events-enabled можно использовать; по умолчанию он включает категории событий трассировки node, node.async_hooks и v8.
node --trace-events-enabled
node --trace-event-categories v8,node,node.async_hooks
Кроме того, события трассировки можно включить с помощью модуля node:trace_events:
import trace_events from 'node:trace_events';
const tracing = trace_events.createTracing({ categories: ['node.perf'] });
tracing.enable(); // Enable trace event capture for the 'node.perf' category
// do work
tracing.disable(); // Disable trace event capture for the 'node.perf' category
При запуске Node.js с включенной трассировкой создаются файлы журнала, которые можно открыть на вкладке chrome://tracing в Chrome.
По умолчанию файл журнала называется node_trace.${rotation}.log, где ${rotation} — идентификатор ротации журнала, который увеличивается при каждой ротации. Шаблон пути к файлу можно задать с помощью --trace-event-file-pattern, принимающего строку шаблона с поддержкой ${rotation} и ${pid}:
node --trace-event-categories v8 --trace-event-file-pattern '${pid}-${rotation}.log' server.js
Чтобы гарантировать правильное создание файла журнала после таких сигнальных событий, как SIGINT, SIGTERM или SIGBREAK, предусмотрите в коде соответствующие обработчики, например:
process.on('SIGINT', function onSigint() {
console.info('Received SIGINT.');
process.exit(130); // Or applicable exit code depending on OS and signal
});
Система трассировки использует тот же источник времени, что и process.hrtime(). Однако временные метки событий трассировки выражаются в микросекундах, в отличие от process.hrtime(), возвращающего наносекунды.
Функции этого модуля недоступны в потоках Worker.
Использование в Deno
import * as mod from "node:trace_events";
function createTracing
Использование в Deno
import { createTracing } from "node:trace_events";
createTracing(options: CreateTracingOptions): TracingЭтот символ является неработающей заглушкой.
Создает и возвращает объект Tracing для заданного набора categories.
import trace_events from 'node:trace_events';
const categories = ['node.perf', 'node.async_hooks'];
const tracing = trace_events.createTracing({ categories });
tracing.enable();
// do stuff
tracing.disable();
Параметры
options: CreateTracingOptions Возвращаемый тип
function getEnabledCategories
Использование в Deno
import { getEnabledCategories } from "node:trace_events";
getEnabledCategories(): string | undefinedЭтот символ является неработающей заглушкой.
Возвращает список всех включенных в данный момент категорий событий трассировки, разделенных запятыми. Текущий набор включенных категорий событий трассировки определяется объединением всех включенных в данный момент объектов Tracing и любых категорий, включенных с помощью флага --trace-event-categories.
Для приведенного ниже файла test.js команда node --trace-event-categories node.perf test.js выведет в консоль 'node.async_hooks,node.perf'.
import trace_events from 'node:trace_events';
const t1 = trace_events.createTracing({ categories: ['node.async_hooks'] });
const t2 = trace_events.createTracing({ categories: ['node.perf'] });
const t3 = trace_events.createTracing({ categories: ['v8'] });
t1.enable();
t2.enable();
console.log(trace_events.getEnabledCategories());
Возвращаемый тип
string | undefined interface CreateTracingOptions
Использование в Deno
import { type CreateTracingOptions } from "node:trace_events";
Этот символ является неработающей заглушкой.
Свойства
categories: string[] Массив имен категорий трассировки. При возможности значения в массиве преобразуются в строки. Если преобразовать значение не удастся, будет выброшена ошибка.
interface Tracing
Использование в Deno
import { type Tracing } from "node:trace_events";
Этот символ является неработающей заглушкой.
Объект Tracing используется для включения и отключения трассировки наборов категорий. Экземпляры создаются с помощью метода trace_events.createTracing().
При создании объект Tracing отключен. Вызов метода tracing.enable() добавляет категории в набор включенных категорий событий трассировки. Вызов tracing.disable() удаляет категории из набора включенных категорий событий трассировки.
Свойства
categories: string Список категорий событий трассировки, охватываемых этим объектом Tracing и разделенных запятыми.
enabled: boolean true только в том случае, если объект Tracing был включен.
Методы
disable(): void Отключает этот объект Tracing.
Будут отключены только те категории событий трассировки, которые не охватываются другими включенными объектами Tracing и не указаны флагом --trace-event-categories.
import trace_events from 'node:trace_events';
const t1 = trace_events.createTracing({ categories: ['node', 'v8'] });
const t2 = trace_events.createTracing({ categories: ['node.perf', 'node'] });
t1.enable();
t2.enable();
// Prints 'node,node.perf,v8'
console.log(trace_events.getEnabledCategories());
t2.disable(); // Will only disable emission of the 'node.perf' category
// Prints 'node,v8'
console.log(trace_events.getEnabledCategories());
enable(): void Включает этот объект Tracing для набора категорий, охватываемых объектом Tracing.
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/node/trace_events