Objetos de seguimiento de Node.js

Los objetos de seguimiento ( agregados en v10.0.0 ) se utilizan para un conjunto de categorías para habilitar y deshabilitar el seguimiento. Cuando se crean eventos de rastreo, el rastreo de objetos se deshabilita llamando al método tracing.enable() y luego las categorías se agregan al conjunto de rastreo habilitado y se puede acceder a ellas llamando a tracing.categories .

Algunos de los objetos de Tracing se mencionan a continuación:

  1. ( Agregado en v10.0.0 ) : el objeto es una interfaz de programación de aplicaciones incorporada del módulo ‘trace_events’ que devuelve categorías de eventos de seguimiento, que es una lista separada por comas que está cubierta por este objeto de seguimiento.  

    Sintaxis:

    tracing.categories

    Parámetros: este objeto no acepta ningún parámetro como se mencionó anteriormente.

    Valor devuelto < string > : Devuelve la lista de categorías de eventos de seguimiento separados por una coma.

  2. ( Agregado en v10.0.0 ) : el objeto es una interfaz de programación de aplicaciones incorporada del módulo ‘trace_events’ que desactiva el objeto de seguimiento que se habilitó antes mediante el método tracing.enable() .

    Sintaxis:

    tracing.disable()

    Parámetros: este objeto no acepta ningún parámetro.

    Valor devuelto: no devuelve ningún valor, sino que deshabilita los eventos de seguimiento.

  3. ( Agregado en v10.0.0) : el objeto es una interfaz de programación de aplicaciones incorporada del módulo ‘trace_events’ que habilita el objeto de seguimiento para el conjunto de categorías que se habilitó anteriormente mediante el método tracing.enable().

    Sintaxis:

    tracing.enable()

    Parámetros: este objeto no acepta ningún parámetro.

    Valor devuelto: no devuelve ningún valor, sino que habilita eventos de seguimiento.

  4. ( Agregado en v10.0.0 ) : este objeto rastrea si los eventos de rastreo están habilitados o deshabilitados y devuelve el valor booleano correspondiente. 

    Sintaxis:

    tracing.enabled

    Parámetros: este objeto no acepta ningún parámetro.

    Valor devuelto < booleano > : devuelve verdadero solo si el objeto de seguimiento se ha habilitado.

Los siguientes programas ilustran los objetos de seguimiento en Node.js:

Instale el módulo trace_events:

npm install trace_events

Ejemplo 1: Nombre de archivo: index.js

// Node.js program to demonstrate the 
// Tracing methods 
  
// Using require to access trace_events module 
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();
  
// Prints newTraceEvent1 trace event
console.log(newTraceEvent1);
  
// Prints newTraceEvent2 trace event
console.log(newTraceEvent2);
  
// Prints all enabled categories
console.log(trace_events.getEnabledCategories());
  
// Disable 'node, node.promises.rejections' category
newTraceEvent2.disable(); 
  
// Prints 'node.perf.usertiming, v8'
console.log(trace_events.getEnabledCategories());
  
// Disable 'node.perf.usertiming' category
newTraceEvent1.disable();

Ejecute el archivo index.js con el siguiente comando:

node index.js

Producción:

Seguimiento { habilitado: verdadero, categorías: ‘node.perf.usertiming, v8’ }
Seguimiento { habilitado: verdadero, categorías: ‘node, node.promises.rejections’ }
node, node.perf.usertiming, node.promises.rejections, v8
Node.perf.tiempo de usuario, v8

Ejemplo 2: Nombre de archivo: index.js

// Node.js program to demonstrate the 
// Trace methods 
  
// Using require to access trace_events module 
const trace_events = require("trace_events");
  
// Tracing categories
const categories = [ 'myapp.category', 'v8', 'node', 
'node.async_hooks', 'node.promises.rejections', 'node.vm.script', 
'node.perf.usertiming', 'node.perf.timerify'];
  
// Now create tracing for custom trace category.
const newTracing = trace_events.createTracing({ categories });
  
// Printing tracing event
console.log(newTracing);
  
// Printing tracing categories
console.log(newTracing.categories);
  
// Checking wheather trace is enabled or not
console.log(newTracing.enabled);
  
// Enabling newTracing
newTracing.enable();
  
// Printing tracing categories
console.log(newTracing.categories);
  
// Checking wheather trace is enabled or not
console.log(newTracing.enabled);
  
// Do some stuff
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");
};
  
// Prints performance stuff
console.log(perf_hooks.performance);
  
// Disables newTracing
newTracing.disable();

Ejecute el archivo index.js con el siguiente comando:

node index.js
For custom tracing
node --trace-event-categories v8, node, node.async_hooks index.js

Producción:

>>Rastreo { habilitado: falso, categorías: ‘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}

Rastreo en el navegador : en Google Chrome ingrese la URL chrome://tracing . Ahora, haga clic en el botón Cargar y cargue el archivo para rastrearlo.

Referencia: https://nodejs.org/api/tracing.html#tracing_tracing_object

Publicación traducida automáticamente

Artículo escrito por amitkumarjee y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *