mirror of
https://github.com/nodejs/node.git
synced 2024-12-01 16:10:02 +01:00
85212bb182
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>
50 lines
1.8 KiB
Markdown
50 lines
1.8 KiB
Markdown
# Tracing
|
|
|
|
<!--introduced_in=v7.7.0-->
|
|
|
|
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.
|
|
|
|
```txt
|
|
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`](https://www.chromium.org/developers/how-tos/trace-event-profiling-tool)
|
|
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:
|
|
|
|
```txt
|
|
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.
|
|
|
|
[Performance API]: perf_hooks.html
|