O monitoramento sintético executa verificações automatizadas e programadas em aplicativos e endpoints a partir de localizações escolhidas — localizações públicas que a New Relic opera em todo o mundo, ou localizações privadas dentro da própria rede. Cada monitor realiza uma solicitação real ou jornada do usuário em um intervalo fixo e relata o resultado, para que falhas, lentidões e fluxos interrompidos sejam detectados o mais cedo possível.
Como essas verificações estão sempre em execução, elas fornecem disponibilidade, funcionalidade e uma baseline de desempenho para os aplicativos (tanto endpoints de API quanto jornadas de browser). O APM e o monitoramento de Browser informam como o tráfego real se comportou, enquanto os monitores Sintéticos informam se a funcionalidade crítica funciona conforme o esperado em todos os momentos, inclusive em regiões com pouco tráfego ou antes que uma versão chegue aos usuários.
Exemplos de casos de uso
O monitoramento sintético da New Relic abrange um espectro que vai desde pings leves de tempo de operação, que cobrem a disponibilidade de forma ampla, até jornadas de API e navegador totalmente baseadas em scripts, que exercitam os fluxos mais complexos. Em monitores com scripts executados a partir de localizações privadas, é possível ir ainda mais longe, estendendo o tempo de execução com os próprios módulos npm para verificar quase tudo que seja acessível a partir da própria rede.
Pingar
A verificação mais econômica que pode ser executada é uma solicitação HTTP programada confirmando que um endpoint está online e rápido o suficiente. Econômica o suficiente para ser executada frequentemente em centenas de endpoints, o que a torna a base para relatórios amplos de disponibilidade e tempo de operação. Ela detecta interrupções, não funcionalidades quebradas, portanto, deve ser tratada como o primeiro sinal, em vez de prova de que o aplicativo funciona.
Para começar, consulte Adicionar e editar monitores para criar um, e Visualizar resultados do monitor de ping para ler o que ele relata.
API com script
Usa Node.js com a API $http para criar uma cadeia de requests, transportar autenticação e estado entre as etapas e usar um assertion no status, na carga e no tempo. Use-o para codificar uma transação de negócios real na camada de serviço ou para observar uma dependência de terceiros na qual se confia, mas não se controla. Em localizações privadas, use require() para que os próprios módulos alcancem protocolos não HTTP ou chamem APIs de modelo, armazenamento de vetores e cloud com os SDKs existentes.
Para começar, consulte Escrever testes de API Sintético para criar o seu primeiro script e Importar módulos do Node.js para estendê-lo com bibliotecas.
Browser simples
Carrega a página em uma instância real do Chrome ou Firefox, para que a verificação execute o JavaScript, os ativos, a CDN e o cache, em vez de apenas o código de status. Captura erros de script que bloqueiam a renderização, pacotes ausentes e tags de terceiros que falham silenciosamente e que um ping nunca vê. Não é necessário código, portanto, é a maneira mais rápida de obter cobertura de renderização real em várias páginas.
Para começar, consulte Adicionar e editar monitores para criar um e Emulação de dispositivo para testar janelas de visualização de dispositivos móveis e tablets.
Browser com script
Conduz um navegador real com a API $browser (Selenium Webdriver) por meio de jornadas autenticadas, condicionais e de várias etapas. Uma verificação valida todo o caminho do navegador até a camada de dados, como login, pesquisa, checkout ou um fluxo interno crítico. É o monitor mais lento e que consome mais recursos, portanto, deve ser reservado para as jornadas que geram receita e confiança.
Para começar, consulte Introdução ao monitor de browser com script para obter os conceitos básicos e a referência do browser com script para a API $browser completa.
A API com script e os monitores de browser com script executam o JavaScript, portanto, é possível usar require() nos próprios módulos npm. As verificações de protocolo, cloud-SDK e documento acima são acionadas da mesma forma. Em localizações privadas, esses módulos são instalados a partir do próprio registro e executados dentro da rede. Armazene quaisquer chaves ou tokens como credenciais seguras.
Código personalizado e extensibilidade
Os monitores com script da New Relic não são verificadores de função fixa — eles são programas. Se for possível expressar em código, será possível monitorar. Isso significa que é possível encadear lógica personalizada, consultar os próprios dados da New Relic e estender os monitores com código e módulos próprios.
Trazer seu próprio código
Os monitores com script permitem usar require() nos próprios módulos. Em localizações privadas, é montado um diretório contendo um package.json, e o gerenciador de trabalhos executa npm install na inicialização, para que qualquer pacote npm ou biblioteca interna se torne parte do monitor — o suficiente para falar protocolos não HTTP (TCP, WebSocket, MQTT, LDAP, SFTP, SMTP), chamar SDKs de provedores de nuvem ou decodificar formatos proprietários. O alcance dos monitores é todo o ecossistema de pacotes mais o próprio código, não uma lista fixa de recursos — portanto, uma nova necessidade significa adicionar uma dependência, não registrar uma solicitação de recurso.
Execute-o de forma privada, dentro de sua rede
Como os monitores com script são executados no gerenciador de trabalhos de Sintéticos, é possível executá-los a partir de localizações privadas dentro da própria rede. Isso significa exercitar sistemas internos com os próprios módulos, instalados a partir do próprio registro, sem expor nada à internet pública.
Receba alertas sobre anomalia de telemetria
Um monitor de API com script pode consultar os próprios dados do New Relic e emitir um alerta sobre o resultado com base na lógica definida nos scripts personalizados, fornecendo cobertura para cenários que não se enquadram na condição do alerta, como consultar dados durante um período mais longo ou comparar resultados com um período anterior:
- Consulte seus dados: chame a API do NerdGraph com
$http, usando uma chave de API armazenada como uma credencial segura, para executar uma consulta NRQL. - Alerta sobre desvios: recomenda-se utilizar um
assertionou lógica semelhante para reprovar a verificação quando o resultado ultrapassar um limite ou se desviar de um período anterior.