The Tracing Objects (Added in v10.0.0) are used for a set of categories to enable and disable the tracing. When tracing events are created then tracing objects is disabled by calling tracing.enable() method and then categories are added to set of enabled trace and can be accessed by calling tracing.categories.
Some of the Tracing objects are mentioned below:
tracing.categories (Added in v10.0.0): object is an inbuilt application programming interface of the ‘trace_events’ module which returns trace event categories which is a comma-separated list that is covered by this Tracing object.
Syntax:
tracing.categories
Parameters: This object does not accept any parameters as mentioned above.
Return Value <string>: It returns the trace event categories list separated by a comma.
tracing.disable() (Added in v10.0.0): object is an inbuilt application programming interface of the ‘trace_events’ module which disables the Tracing object which was enabled before by tracing.enable() method.
Syntax:
tracing.disable()
Parameters: This object does not accept any parameters.
Return Value: It does not return any value instead disables the trace events.
tracing.enable() (Added in v10.0.0): object is an inbuilt application programming interface of the ‘trace_events’ module which enables the Tracing object for the set of categories which was enabled before by tracing.enable() method.
Syntax:
tracing.enable()
Parameters: This object does not accept any parameters.
Return Value: It does not return any value instead enables trace events.
tracing.enabled (Added in v10.0.0): This object traces whether trace events are enabled or disabled and returns back the boolean value accordingly.
Syntax:
tracing.enabled
Parameters: This object does not accept any parameters.
Return Value <boolean>: It returns true only if the Tracing object has been enabled.
Below programs illustrate the Tracing Objects in Node.js:
Install trace_events module:
npm install trace_events
Example 1: Filename: index.js
javascript
const trace_events = require( 'trace_events' );
const newTraceEvent1 = trace_events.createTracing({
categories: [ 'node.perf.usertiming' , 'v8' ] });
const { createTracing } = require( 'trace_events' );
const newTraceEvent2 = createTracing({
categories: [ 'node' , 'node.promises.rejections' ] });
newTraceEvent1.enable();
newTraceEvent2.enable();
console.log(newTraceEvent1);
console.log(newTraceEvent2);
console.log(trace_events.getEnabledCategories());
newTraceEvent2.disable();
console.log(trace_events.getEnabledCategories());
newTraceEvent1.disable();
|
Run index.js file using the following command:
node index.js
Output:
Tracing { enabled: true, categories: ‘node.perf.usertiming, v8’ } Tracing { enabled: true, categories: ‘node, node.promises.rejections’ } node, node.perf.usertiming, node.promises.rejections, v8 node.perf.usertiming, v8
Example 2: Filename: index.js
javascript
const trace_events = require("trace_events");
const categories = [ 'myapp.category' , 'v8' , 'node' ,
'node.async_hooks' , 'node.promises.rejections' , 'node.vm.script' ,
'node.perf.usertiming' , 'node.perf.timerify' ];
const newTracing = trace_events.createTracing({ categories });
console.log(newTracing);
console.log(newTracing.categories);
console.log(newTracing.enabled);
newTracing.enable();
console.log(newTracing.categories);
console.log(newTracing.enabled);
const perf_hooks = require("perf_hooks");
perf_hooks.performance.mark("Alfa");
() => {
perf_hooks.performance.mark("Beta");
perf_hooks.performance.measure(
"Alfa to Beta", "Alfa", "Beta");
};
console.log(perf_hooks.performance);
newTracing.disable();
|
Run index.js file using the following command:
node index.js
For custom tracing
node --trace-event-categories v8, node, node.async_hooks index.js
Output:
>>Tracing { enabled: false, categories: ‘myapp.category, ………., node.perf.timerify’} >>myapp.category, v8, ……….., node.perf.timerify >>false >>myapp.category, v8, ………, node.perf.timerify >>true >>{ nodeTiming: { name: ‘node’, …loopExit: -1 }, timeOrigin: 1596967720328.603}
Tracing in Browser: In Google Chrome enter URL chrome://tracing. Now, Click the Load button, and load the file for tracing.
Reference: https://nodejs.org/api/tracing.html#tracing_tracing_object
Last Updated :
01 Dec, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...