O New Relic permite que você use o NerdGraph para criar monitores de API com scripts. Os monitores API com script executam código JavaScript personalizado para testar APIs e serviços backend sem um navegador, fazendo requests HTTP e validando respostas programaticamente. Este tutorial fornece exemplos de como usar a API do NerdGraph para automatizar a criação de monitores de API com scripts.
Crie um monitor de API com script
Você pode criar um monitor de API com script usando a mutação syntheticsCreateScriptApiMonitor. Essa mutação permite configurar testes API personalizados que executam seu código JavaScript para validar os endpoints da API.
Parâmetro de entrada
Parâmetro | Tipo de dados | É obrigatório? | Descrição |
|---|---|---|---|
| Inteiro | Sim | Seu New Relic onde o monitor será criado. |
| Matriz | Sim | matriz de identificadar onde o monitor executará verificações (por exemplo,
). |
| Corda | Sim | O nome de exibição para o seu monitor de API com script. |
| Enum | Sim | Com que frequência o monitor é executado? Opções:
,
,
,
,
,
,
,
,
. |
| Corda | Sim | O tipo de tempo de execução usado pelo seu monitor.
é o único valor aceito. |
| Corda | Sim | A versão do tipo de tempo de execução usada pelo seu monitor.
é o único valor aceito. |
| Corda | Sim | O idioma utilizado no seu monitor.
é o único valor aceito. |
| Corda | Sim | O código JavaScript que o monitor executa. Este texto deve ser em formato simples, não codificado em base64. O script pode usar o objeto $http para fazer requests HTTP e realizar testes API. |
| Enum | Sim | O estado do monitor. Opções:
(monitor ativo e realizando verificações),
(monitor inativo). |
| Float | Não | O monitor Apdex destino em segundos, usado para preencher relatórios SLA. O valor padrão é de 7,0 segundos. |
Solicitação de amostra
mutation { syntheticsCreateScriptApiMonitor( accountId: ACCOUNT_ID monitor: { locations: { public: ["LOCATION_1", "LOCATION_2"] } name: "YOUR_MONITOR_NAME" period: PERIOD runtime: { runtimeType: "RUNTIME_TYPE" runtimeTypeVersion: "RUNTIME_TYPE_VERSION" scriptLanguage: "SCRIPT_LANGUAGE" } script: "SCRIPT_CONTENT" status: STATUS apdexTarget: APDEX_TARGET } ) { errors { description type } }}Resposta de amostra
Uma resposta bem-sucedida retorna null para erros:
{ "data": { "syntheticsCreateScriptApiMonitor": { "errors": null } }}Se houver algum problema ao criar o monitor, a matriz errors conterá objetos com campos description e type explicando o que deu errado.
Atualizar um monitor de API com script
Você pode atualizar um monitor de API com script existente usando a mutação syntheticsUpdateScriptApiMonitor. Isso permite modificar a configuração de um monitor de API com script que já foi criado.
Parâmetro de entrada
Parâmetro | Tipo de dados | É obrigatório? | Descrição |
|---|---|---|---|
| Corda | Sim | O exclusivo da entidade do monitor que você deseja atualizar. |
| Matriz | Não | matriz de identificadar onde o monitor executará verificações (por exemplo,
). |
| Corda | Não | O nome de exibição atualizado para o seu monitor de API com script. |
| Enum | Não | Com que frequência o monitor é executado? Opções:
,
,
,
,
,
,
,
,
. |
| Corda | Não | O tipo de tempo de execução usado pelo seu monitor.
é o único valor aceito. |
| Corda | Não | A versão do tipo de tempo de execução usada pelo seu monitor.
é o único valor aceito. |
| Corda | Não | O idioma utilizado no seu monitor.
é o único valor aceito. |
| Corda | Não | O código JavaScript que o monitor executa. Este texto deve ser em formato simples, não codificado em base64. |
| Enum | Não | O estado do monitor. Opções:
(monitor ativo e realizando verificações),
(monitor inativo). |
| Float | Não | O monitor Apdex destino em segundos, usado para preencher relatórios SLA. O valor padrão é de 7,0 segundos. |
Solicitação de amostra
mutation { syntheticsUpdateScriptApiMonitor( guid: ENTITY_GUID monitor: { locations: { public: ["LOCATION_1", "LOCATION_2"] } name: "YOUR_MONITOR_NAME" period: PERIOD runtime: { runtimeType: "RUNTIME_TYPE" runtimeTypeVersion: "RUNTIME_TYPE_VERSION" scriptLanguage: "SCRIPT_LANGUAGE" } script: "SCRIPT_CONTENT" status: STATUS apdexTarget: APDEX_TARGET } ) { errors { description type } }}Resposta de amostra
Uma resposta bem-sucedida retorna null para erros:
{ "data": { "syntheticsUpdateScriptApiMonitor": { "errors": null } }}Se houver algum problema ao atualizar o monitor, a matriz errors conterá objetos com campos description e type explicando o que deu errado.
Atualize o ambiente de execução de um monitor de API baseado em script.
Você pode atualizar um monitor de API baseado em script para usar o ambiente de execução Node.js 16.10 mais recente. Isso garante que seu monitor utilize as atualizações mais recentes de recursos e segurança Node.js
Parâmetro de entrada
Parâmetro | Tipo de dados | É obrigatório? | Descrição |
|---|---|---|---|
| Corda | Sim | O exclusivo da entidade do monitor que você deseja atualizar. |
| Corda | Sim | O tipo de tempo de execução.
é o único valor aceito. |
| Corda | Sim | A versão de tempo de execução.
é o único valor aceito. |
| Corda | Sim | A linguagem de script.
é o único valor aceito. |
Solicitação de amostra
mutation { syntheticsUpdateScriptApiMonitor( guid: "ENTITY_GUID" monitor: { runtime: { runtimeType: "NODE_API" runtimeTypeVersion: "16.10" scriptLanguage: "JAVASCRIPT" } } ) { errors { description type } }}Resposta de amostra
Uma resposta bem-sucedida retorna null para erros:
{ "data": { "syntheticsUpdateScriptApiMonitor": { "errors": null } }}Se houver algum problema ao atualizar o tempo de execução do monitor, a matriz errors conterá objetos com campos description e type explicando o que deu errado.
Fazer downgrade do runtime de um monitor de API baseado em script
Você pode fazer o downgrade de um monitor de API baseado em script para usar um ambiente de execução legado. Isso pode ser necessário por motivos de compatibilidade, mas observe que os runtimes legados chegarão ao fim de sua vida útil em 22 de outubro de 2024.
Importante
Os ambientes de execução legados estão obsoletos e chegarão ao fim de sua vida útil em 22 de outubro de 2024. Não é recomendável fazer o downgrade para versões de tempo de execução legadas, exceto em casos de necessidade temporária de compatibilidade.
Parâmetro de entrada
Parâmetro | Tipo de dados | É obrigatório? | Descrição |
|---|---|---|---|
| Corda | Sim | O exclusivo da entidade do monitor para o qual você deseja fazer o downgrade. |
| Corda | Sim | Defina como string vazia
para usar o ambiente de execução legado. |
| Corda | Sim | Defina como string vazia
para usar o ambiente de execução legado. |
| Corda | Sim | Defina como string vazia
para usar o ambiente de execução legado. |
Solicitação de amostra
mutation { syntheticsUpdateScriptApiMonitor( guid: "ENTITY_GUID" monitor: { runtime: { runtimeType: "", runtimeTypeVersion: "", scriptLanguage: "" } } ) { errors { description type } }}Resposta de amostra
Uma resposta bem-sucedida retorna null para erros:
{ "data": { "syntheticsUpdateScriptApiMonitor": { "errors": null } }}Se houver algum problema ao fazer o downgrade do tempo de execução do monitor, a matriz errors conterá objetos com campos description e type explicando o que deu errado.
Mova um monitor API com script entre localização privada habilitada para VSE
Você pode mover um monitor API com script entre localização privada habilitada para VSE. Ao mover monitores entre locais privados com a execução script verificada (VSE) ativada, você deve incluir o script para regenerar os HMACs para validação de segurança.
Parâmetro de entrada
Parâmetro | Tipo de dados | É obrigatório? | Descrição |
|---|---|---|---|
| Corda | Sim | O exclusivo da entidade do monitor que você deseja mover. |
| Matriz | Sim | matriz de localização privada configuração. Cada local requer um
e
para locais habilitados para VSE. |
| Corda | Sim | O GUID da entidade da localização privada de destino. |
| Corda | Sim | A senha do VSE para o destino localização privada. |
| Corda | Sim | O código JavaScript que o monitor executa. Isso deve ser incluído para regenerar os HMACs ao migrar entre locais com VSE habilitado. |
Solicitação de amostra
mutation { syntheticsUpdateScriptApiMonitor( guid: "ENTITY_GUID" monitor: { locations: { private: [{ guid: "LOCATION_GUID", vsePassword: "YOUR_VSE_PASSWORD" }] } script: "SCRIPT_CONTENT" } ) { errors { description type } monitor { status } }}Resposta de amostra
Uma resposta bem-sucedida retorna null para erros e inclui o status do monitor:
{ "data": { "syntheticsUpdateScriptApiMonitor": { "errors": null, "monitor": { "status": "ENABLED" } } }}Se houver algum problema ao mover o monitor, a matriz errors conterá objetos com campos description e type explicando o que deu errado.
Excluir um monitor de API com script
Quando um monitor de API com script não for mais necessário, você poderá removê-lo permanentemente usando a mutação syntheticsDeleteMonitor.
Para excluir um monitor, consulte a seção Excluir monitor Sintético.