Importante
Para usar detalles de sincronización personalizados con su monitor API con script, necesita el tiempo de ejecución Node.js 16.10 o más reciente.
Puede usar la biblioteca $har para crear un monitor con capacidades de sincronización personalizadas que informen sobre la interacción entre el monitor y la aplicación que se está monitoreando. Estos tiempos personalizados utilizan tanto el módulo node.js predeterminado como los módulos node.js importables.
Crear un monitor con capacidades de sincronización personalizadas también le permite:
- Cronometrar la finalización de una solicitud. Por ejemplo, usar el módulo
dns
para probar búsquedas de DNS. - Vea temporizadores personalizados con detalles de tiempo predeterminados en la UI de New Relic como parte de la vista en cascada.
- Utilice
SyntheticRequest
evento para realizar un seguimiento de las tendencias y los patrones de alertas.
Configure sus temporizadores personalizados
Cree sus recursos de sincronización usando addResource()
o getResource()
. Estos temporizadores se inician utilizando startTimer()
. Del mismo modo, puedes detener estos temporizadores usando stopTimer()
.
Para crear un recurso de sincronización:
const testTimer = $har.addResource('Test Timer');testTimer.startTimer();await sleep(100);testTimer.endTimer();
Alternativamente, cree un temporizador usando getResource()
:
$har.getResource('Test Timer').startTimer();await sleep(100);$har.getResource('Test Timer').endTimer();
Recuperar detalles de tiempo específicos
Dependiendo de sus necesidades específicas de secuencia de comandos, puede extraer detalles de sincronización más granulares en la UI a través de una variedad de atributos. Éstas incluyen:
- obstruido
- DNS
- conectar
- SSL
- enviar
- esperar
- recibir
Por ejemplo, para agregar temporizadores a un monitor DNS simple:
const { Resolver } = require('dns').promises;const myResolver = new Resolver();
myResolver.setServers(['1.1.1.1']);
const dnsResource = $har.addResource('DNS Lookup');dnsResource.startTimer();dnsResource.dns().startTimer();
let addresses = await myResolver.resolve4('newrelic.com')dnsResource.dns().endTimer();dnsResource.endTimer();console.log(addresses);