Importante
Para usar detalhes de tempo personalizados com seu monitor de API com script, você precisa do tempo de execução Node.js 16.10 ou mais recente.
Você pode usar a biblioteca $har para criar monitores com recursos de temporização personalizados que relatam a interação entre o monitor e o aplicativo que está sendo monitorado. Esses tempos personalizados usam o módulo node.js padrão e os módulos node.js importáveis.
A criação de um monitor com recursos de temporização personalizados também permite:
- Cronometre a conclusão de uma solicitação. Por exemplo, usando o módulo
dns
para testar pesquisas de DNS. - Visualize temporizadores personalizados com detalhes de tempo padrão na interface do New Relic como parte da visualização em cascata.
- Use o evento
SyntheticRequest
para acompanhar padrões de tendências e alertas.
Configure seus temporizadores personalizados
Crie seus recursos de tempo usando addResource()
ou getResource()
. Você inicia esses cronômetros usando startTimer()
. Da mesma forma, você interrompe esses temporizadores usando stopTimer()
.
Para criar um recurso de tempo:
const testTimer = $har.addResource('Test Timer');testTimer.startTimer();await sleep(100);testTimer.endTimer();
Como alternativa, crie um cronômetro usando getResource()
:
$har.getResource('Test Timer').startTimer();await sleep(100);$har.getResource('Test Timer').endTimer();
Recuperar detalhes de tempo específicos
Dependendo de suas necessidades específicas de script, você pode obter detalhes de tempo mais granulares para a IU por meio de uma variedade de atributos. Esses incluem:
- bloqueado
- DNS
- conectar
- SSL
- enviar
- espere
- receber
Por exemplo, para adicionar temporizadores a um monitor DNS simples:
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);