New Relic te permite usar NerdGraph para crear monitores API con scripts. Los monitores API con script ejecutan código JavaScript personalizado para probar API y servicios backend sin un navegador, realizando requests HTTP y validando respuestas mediante programación. Este tutorial proporciona ejemplos de cómo emplear la API NerdGraph para automatizar la creación de monitores de API con scripts.
Crear un monitor API con script
Puede crear un monitor de API con script empleando la mutación syntheticsCreateScriptApiMonitor. Esta mutación le permite configurar pruebas API personalizadas que ejecutan su código JavaScript para validar extremos de API.
parámetro de entrada
Parámetro | Tipo de datos | ¿Es obligatorio? | Descripción |
|---|---|---|---|
| Entero | Sí | New Relic donde se creará el monitor. |
| Matriz | Sí | matriz de identificador donde el monitor ejecutará comprobaciones (por ejemplo,
). |
| Cadena | Sí | El nombre para mostrar de su monitor de API con script. |
| Enumeración | Sí | Con qué frecuencia se ejecuta el monitor. Opciones:
,
,
,
,
,
,
,
,
. |
| Cadena | Sí | El tipo de tiempo de ejecución empleado por su monitor.
es el único valor aceptado. |
| Cadena | Sí | La versión del tipo de tiempo de ejecución empleada por su monitor.
es el único valor aceptado. |
| Cadena | Sí | El idioma empleado en su monitor.
es el único valor aceptado. |
| Cadena | Sí | El código JavaScript que ejecuta el monitor. Debe ser texto simple, no codificado en base64. El script puede usar el objeto $http para realizar requests HTTP y realizar pruebas API. |
| Enumeración | Sí | El estado del monitor. Opciones:
(el monitor está activo y realizando comprobaciones),
(el monitor está inactivo). |
| Flotante | No | Objetivo Apdex del monitor en segundos, empleado para completar reportes SLA. El valor predeterminado es 7,0 segundos. |
Solicitud de muestra
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 } }}Ejemplo de respuesta
Una respuesta exitosa devuelve null para los errores:
{ "data": { "syntheticsCreateScriptApiMonitor": { "errors": null } }}Si hay algún problema al crear el monitor, la matriz errors contendrá objetos con campos description y type que explican qué salió mal.
Actualizar un monitor de API con script
Puede actualizar un monitor de API con script existente empleando la mutación syntheticsUpdateScriptApiMonitor. Esto le permite modificar la configuración de un monitor de API con script que ya se creó.
parámetro de entrada
Parámetro | Tipo de datos | ¿Es obligatorio? | Descripción |
|---|---|---|---|
| Cadena | Sí | El de entidad única del monitor que desea actualizar. |
| Matriz | No | matriz de identificador donde el monitor ejecutará comprobaciones (por ejemplo,
). |
| Cadena | No | El nombre para mostrar actualizado para su monitor de API con script. |
| Enumeración | No | Con qué frecuencia se ejecuta el monitor. Opciones:
,
,
,
,
,
,
,
,
. |
| Cadena | No | El tipo de tiempo de ejecución empleado por su monitor.
es el único valor aceptado. |
| Cadena | No | La versión del tipo de tiempo de ejecución empleada por su monitor.
es el único valor aceptado. |
| Cadena | No | El idioma empleado en su monitor.
es el único valor aceptado. |
| Cadena | No | El código JavaScript que ejecuta el monitor. Debe ser texto simple, no codificado en base64. |
| Enumeración | No | El estado del monitor. Opciones:
(el monitor está activo y realizando comprobaciones),
(el monitor está inactivo). |
| Flotante | No | Objetivo Apdex del monitor en segundos, empleado para completar reportes SLA. El valor predeterminado es 7,0 segundos. |
Solicitud de muestra
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 } }}Ejemplo de respuesta
Una respuesta exitosa devuelve null para los errores:
{ "data": { "syntheticsUpdateScriptApiMonitor": { "errors": null } }}Si hay algún problema al actualizar el monitor, la matriz errors contendrá objetos con campos description y type que explican qué salió mal.
Actualizar el tiempo de ejecución de un monitor de API con script
Puede actualizar un monitor de API con script para emplear el nuevo entorno de ejecución Node.js 16.10. Esto garantiza que su monitor emplee las últimas actualizaciones de seguridad y características Node.js
parámetro de entrada
Parámetro | Tipo de datos | ¿Es obligatorio? | Descripción |
|---|---|---|---|
| Cadena | Sí | El de entidad única del monitor que desea actualizar. |
| Cadena | Sí | El tipo de tiempo de ejecución.
es el único valor aceptado. |
| Cadena | Sí | La versión de tiempo de ejecución.
es el único valor aceptado. |
| Cadena | Sí | El lenguaje de script.
es el único valor aceptado. |
Solicitud de muestra
mutation { syntheticsUpdateScriptApiMonitor( guid: "ENTITY_GUID" monitor: { runtime: { runtimeType: "NODE_API" runtimeTypeVersion: "16.10" scriptLanguage: "JAVASCRIPT" } } ) { errors { description type } }}Ejemplo de respuesta
Una respuesta exitosa devuelve null para los errores:
{ "data": { "syntheticsUpdateScriptApiMonitor": { "errors": null } }}Si hay algún problema al actualizar el entorno de ejecución del monitor, la matriz errors contendrá objetos con campos description y type que explican qué salió mal.
Reducir el tiempo de ejecución de un monitor de API con script
Puede degradar un monitor API con script para emplear un entorno de ejecución legacy. Esto puede ser necesario por razones de compatibilidad, pero tenga en cuenta que los entornos de ejecución legacy finalizarán su vida útil el 22 de octubre de 2024.
Importante
Los tiempos de ejecución heredados están obsoletos y finalizarán su vida útil el 22 de octubre de 2024. No se recomienda cambiar a entornos de ejecución legacy, excepto por necesidades de compatibilidad temporales.
parámetro de entrada
Parámetro | Tipo de datos | ¿Es obligatorio? | Descripción |
|---|---|---|---|
| Cadena | Sí | El de entidad única del monitor que desea degradar. |
| Cadena | Sí | Establezca la cadena vacía
para emplear el tiempo de ejecución legacy. |
| Cadena | Sí | Establezca la cadena vacía
para emplear el tiempo de ejecución legacy. |
| Cadena | Sí | Establezca la cadena vacía
para emplear el tiempo de ejecución legacy. |
Solicitud de muestra
mutation { syntheticsUpdateScriptApiMonitor( guid: "ENTITY_GUID" monitor: { runtime: { runtimeType: "", runtimeTypeVersion: "", scriptLanguage: "" } } ) { errors { description type } }}Ejemplo de respuesta
Una respuesta exitosa devuelve null para los errores:
{ "data": { "syntheticsUpdateScriptApiMonitor": { "errors": null } }}Si hay algún problema al degradar el tiempo de ejecución del monitor, la matriz errors contendrá objetos con campos description y type que explican qué salió mal.
Mover un monitor API con script entre una ubicación privada habilitada para VSE
Puede mover un monitor API con script entre una ubicación privada habilitada para VSE. Al mover monitores entre ubicaciones privadas con la ejecución script verificados (VSE) habilitada, debe incluir el script para regenerar HMAC para la validación de seguridad.
parámetro de entrada
Parámetro | Tipo de datos | ¿Es obligatorio? | Descripción |
|---|---|---|---|
| Cadena | Sí | El de entidad única del monitor que desea mover. |
| Matriz | Sí | matriz de configuración de ubicación privada. Cada ubicación requiere un
y
para las ubicaciones habilitadas para VSE. |
| Cadena | Sí | El GUID de entidad de la ubicación privada de destino. |
| Cadena | Sí | La contraseña de VSE para la ubicación privada del objetivo. |
| Cadena | Sí | El código JavaScript que ejecuta el monitor. Esto debe incluir para regenerar HMAC al mover entre ubicaciones habilitadas para VSE. |
Solicitud de muestra
mutation { syntheticsUpdateScriptApiMonitor( guid: "ENTITY_GUID" monitor: { locations: { private: [{ guid: "LOCATION_GUID", vsePassword: "YOUR_VSE_PASSWORD" }] } script: "SCRIPT_CONTENT" } ) { errors { description type } monitor { status } }}Ejemplo de respuesta
Una respuesta exitosa devuelve null en caso de errores e incluye el estado del monitor:
{ "data": { "syntheticsUpdateScriptApiMonitor": { "errors": null, "monitor": { "status": "ENABLED" } } }}Si hay algún problema al mover el monitor, la matriz errors contendrá objetos con campos description y type que explican qué salió mal.
Eliminar un monitor de API con script
Cuando ya no se necesita un monitor de API con script, puedes eliminarlo de forma permanente empleando la mutación syntheticsDeleteMonitor.
Para eliminar un monitor, consulte la sección Eliminar monitor Sintético.