0
0
mirror of https://github.com/nodejs/node.git synced 2024-11-29 15:06:33 +01:00
nodejs/doc/api/tracing.md
Andreas Madsen 85212bb182
trace_events: add file pattern cli option
Allow the user to specify the filepath for the trace_events log file
using a template string.

PR-URL: https://github.com/nodejs/node/pull/18480
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
2018-03-04 12:07:39 +01:00

1.8 KiB

Tracing

Trace Event provides a mechanism to centralize tracing information generated by V8, Node core, and userspace code.

Tracing can be enabled by passing the --trace-events-enabled flag when starting a Node.js application.

The set of categories for which traces are recorded can be specified using the --trace-event-categories flag followed by a list of comma separated category names.

The available categories are:

  • node
  • node.async_hooks - Enables capture of detailed async_hooks trace data.
  • node.perf - Enables capture of Performance API measurements.
    • node.perf.usertiming - Enables capture of only Performance API User Timing measures and marks.
    • node.perf.timerify - Enables capture of only Performance API timerify measurements.
  • v8

By default the node, node.async_hooks, and v8 categories are enabled.

node --trace-events-enabled --trace-event-categories v8,node,node.async_hooks server.js

Running Node.js with tracing enabled will produce log files that can be opened in the chrome://tracing tab of Chrome.

The logging file is by default called node_trace.${rotation}.log, where ${rotation} is an incrementing log-rotation id. The filepath pattern can be specified with --trace-event-file-pattern that accepts a template string that supports ${rotation} and ${pid}. For example:

node --trace-events-enabled --trace-event-file-pattern '${pid}-${rotation}.log' server.js

Starting with Node 10.0.0, the tracing system uses the same time source as the one used by process.hrtime() however the trace-event timestamps are expressed in microseconds, unlike process.hrtime() which returns nanoseconds.