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:
blocked
dns
connect
ssl
send
wait
receive
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);