Important
Pour utiliser les détails de synchronisation personnalisés avec votre moniteur d'API scripté, vous avez besoin du runtime Node.js 16.10 ou d'une version plus récente.
Vous pouvez utiliser la bibliothèque $har pour créer un moniteur avec des capacités de synchronisation personnalisées qui rendent compte de l'interaction entre le moniteur et l'application monitorée. Ces synchronisations personnalisées utilisent à la fois le module node.js par défaut et les modules node.js importables.
La création d’un moniteur avec des capacités de synchronisation personnalisées vous permet également :
- Chronométrer l'achèvement d'une demande. Par exemple, utiliser le module
dnspour tester les recherches DNS. - Affichez les minuteries personnalisées avec les détails de synchronisation par défaut dans l'interface utilisateur de New Relic dans le cadre de la vue en cascade.
- Utilisez
SyntheticRequestévénement pour suivre les tendances et les modèles d'alerte.
Configurez vos minuteries personnalisées
Créez vos ressources de synchronisation en utilisant addResource() ou getResource(). Vous démarrez ces minuteries en utilisant startTimer(). De même, vous arrêtez ces minuteries en utilisant stopTimer().
Pour créer une ressource de synchronisation :
const testTimer = $har.addResource("Test Timer");testTimer.startTimer();await sleep(100);testTimer.endTimer();Vous pouvez également créer un minuteur en utilisant getResource():
$har.getResource("Test Timer").startTimer();await sleep(100);$har.getResource("Test Timer").endTimer();Récupérer des détails de synchronisation spécifiques
En fonction des besoins spécifiques de votre script, vous pouvez extraire des détails de synchronisation plus précis dans l'interface utilisateur via une variété d'attributs. Il s’agit notamment de :
blockeddnsconnectsslsendwaitreceive
Par exemple, pour ajouter des minuteries à un simple moniteur DNS :
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);