Esta tradução de máquina é fornecida para sua comodidade.
In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.
O monitor de API com script verifica seus endpoints de API para garantir que estejam funcionando corretamente. Para criar um monitor de API com script, acesse one.newrelic.com > Synthetic monitoring > Create a monitor e selecione o bloco Endpoint availability .
Os testes de API são desenvolvidos pelo módulo obtido, que está disponível por meio do objeto $http . O objeto $http fornece uma experiência personalizada semelhante a requestcom got, dando ao seu monitor compatibilidade com versões anteriores para casos de uso básicos. A experiência semelhante a requestfornecida pelo objeto $http também será retornada para todos os clientes que tentarem usar request diretamente no Node.js 16 e em tempos de execução de API com script mais recentes.
Os detalhes de tempo dos resultados serão fornecidos desde que você use o objeto $http . Para casos de uso de API com script não cobertos pelo objeto $http , você pode usar o objeto $har para relatar detalhes de tempo personalizados.
Importante
Após um tempo de execução máximo de três minutos, o New Relic interrompe manualmente o script.
Para fazer uma solicitação GET, use o método $http.get para enviar sua solicitação. Defina suas opções de solicitação, faça sua solicitação usando $http.get e valide a resposta para garantir que seu endpoint esteja retornando os resultados corretos.
Envie uma solicitação POST
Para fazer uma solicitação POST, use o método $http.post para enviar sua solicitação. Defina suas opções de solicitação, faça sua solicitação usando $http.post e valide a resposta para garantir que seu endpoint esteja retornando os resultados corretos.
nrql: 'SELECT average(duration) FROM Transaction',
},
}),
};
// Define expected results using callback function
function callback(err, response, body) {
// Log JSON results from endpoint to Synthetics console
console.log(body);
console.log('Script execution completed');
}
// Make POST request, passing in options and callback
$http.post(options, callback);
Este exemplo envia um evento personalizado contendo números inteiros estáticos para a API do evento:
//Define your authentication credentials.
var myAccountID = '{YOUR_ACCOUNT_ID}';
var myAPIKey = '{YOUR_API_KEY}';
//Import the 'assert' module to validate results.
var assert = require('assert');
var options = {
//Define endpoint URL.
url: "https://insights-collector.newrelic.com/v1/accounts/"+myAccountID+"/events",
//Define body of POST request.
body: '[{"eventType":"SyntheticsEvent","integer1":1000,"integer2":2000}]',
//Define New Relic API key and expected data type.
headers: {
'Api-Key': myAPIKey,
'Content-Type': 'application/json'
}
};
//Define expected results using callback function.
function callback(error, response, body) {
//Log status code to Synthetics console.
console.log(response.statusCode + " status code")
//Verify endpoint returns 200 (OK) response code.
assert.ok(response.statusCode == 200, 'Expected 200 OK response');
//Verify that `body` contains element named `success` with a value of `true`.
assert.ok(body.success == true, 'Expected True results in Response Body, result was ' + body.success);
//Log end of script.
console.log("End reached");
}
//Make POST request, passing in options and callback.
$http.post(options, callback);
Validar resultados
Para validar seus resultados, importe o módulo assert para definir seu caso de teste. Chame um método assert para validar a resposta do seu endpoint. Se alguma função assert falhar, todo o monitor será considerado uma verificação com falha. Isto pode acionar a notificação de alerta e afetar sua métrica.
Importante
O monitoramento sintético não permite exceções lançadas. Exceções lançadas resultam em falha de script. Use o módulo assert para validar seus resultados e use console.log() para log os resultados no console do Sintético.
Este exemplo faz POST para a API do evento e valida se a resposta é {"success":true}: