En este documento, se describe cómo configurar una verificación de tiempo de actividad para validar el código de respuesta HTTP y los datos de respuesta que envía un recurso verificado. De forma predeterminada, las verificaciones de tiempo de actividad de HTTP verifican que el código de respuesta sea 2xx
. Además, de forma predeterminada, los datos de respuesta no se validan. Sin embargo, puedes modificar esta configuración. Por ejemplo, puedes configurar una verificación de tiempo de actividad HTTP para aceptar códigos de respuesta 2xx
y 3xx
. Para todas las verificaciones de tiempo de actividad, puedes especificar un valor que los datos de respuesta deben o no contener para que la verificación de tiempo de actividad sea exitosa.
Cómo validar los datos de respuesta
Puedes configurar Cloud Monitoring para validar los datos de respuesta de un recurso verificado cuando creas o editas una verificación de tiempo de actividad.
Consola de Google Cloud
Para crear una verificación de tiempo de actividad que valide los datos de la respuesta, haz lo siguiente:
-
En el panel de navegación de la consola de Google Cloud, selecciona Monitoring y, luego, Verificaciones de tiempo de actividad:
- Haz clic en Crear una verificación de tiempo de actividad.
- Ingresa un Título y haz clic en Siguiente.
- Ingresa el Objetivo y haz clic en Siguiente.
Configura la validación de respuestas:
- Para validar los datos de respuesta, asegúrate de que se muestre la opción La coincidencia de contenido está habilitada y, luego, completa los campos relacionados con la validación de la respuesta. Para obtener información sobre estas opciones, consulta la siguiente sección de este documento.
- Para las verificaciones de tiempo de actividad HTTP, configura los códigos de respuesta aceptables.
De forma predeterminada, las verificaciones de tiempo de actividad de HTTP marcan cualquier respuesta
2xx
como una respuesta exitosa.
Haz clic en Siguiente y completa la configuración de la verificación de tiempo de actividad.
API de Cloud Monitoring
Si deseas configurar una verificación de tiempo de actividad para validar los datos de respuesta, propaga el array contentMatchers
del objeto UptimeCheckConfig
.
Los objetos ContentMatcher
contienen los siguientes campos:
matcher
: Describe cómo se realiza la comparación. Para obtener una lista de valores, consultaContentMatcherOption
.No uses el valor
CONTENT_MATCHER_OPTION_UNSPECIFIED
.content
: Almacena el valor que se debe buscar en los datos de respuesta. El valor es un literal de string o una expresión regular.jsonPathMatcher
: Almacena un objetoJsonPathMatcher
que describe qué JSONpath buscar y cómo realizar la comparación.Omite este campo, a menos que la verificación de tiempo de actividad valide una ruta JSON específica.
En el resto de este documento, se describe cómo usar las opciones de coincidencia de contenido.
Opciones para validar los datos de respuesta
En esta sección, se describen las estrategias de coincidencia de cadenas que puedes usar para validar la respuesta enviada por un recurso verificado. Para cada estrategia, debes especificar un valor y si encontrar ese valor en los datos de respuesta hace que la verificación de tiempo de actividad se apruebe o falle.
Es posible que no se busque en la respuesta completa de un recurso verificado:
- Verificaciones de tiempo de actividad HTTP y HTTPS: se busca en los primeros 4 MB.
- Verificaciones de tiempo de actividad de TCP: Se busca en el primer MB.
Buscar una subcadena literal
Consola de Google Cloud
Para configurar la verificación de tiempo de actividad cuando los datos de respuesta contengan una subcadena literal, usa la siguiente configuración:
- Selecciona Contiene en el menú Tipo de concordancia del contenido de la respuesta.
- Ingresa la subcadena literal en el campo Response content.
- Para verificar la configuración, haz clic en Probar.
Para configurar la verificación de tiempo de actividad para que falle cuando los datos de respuesta contengan una subcadena literal, usa la siguiente configuración:
- Selecciona No contiene en el menú Tipo de concordancia del contenido de la respuesta.
- Ingresa la subcadena literal en el campo Response content.
- Para verificar la configuración, haz clic en Probar.
API de Cloud Monitoring
Para configurar la verificación de tiempo de actividad para que se apruebe cuando los datos de respuesta contengan una subcadena literal, usa los siguientes valores:
... "contentMatchers": [ { "content": "Set to the string to be matched.", "matcher": "CONTAINS_STRING" } ], ...
Para configurar la verificación de tiempo de actividad para que falle cuando los datos de respuesta contengan una subcadena literal, usa los siguientes valores:
... "contentMatchers": [ { "content": "Set to the string to be matched.", "matcher": "NOT_CONTAINS_STRING" } ], ...
En la siguiente tabla, se muestra el estado de la verificación de tiempo de actividad para diferentes datos de respuesta, cadenas de prueba y tipos de prueba:
Estado de la verificación de tiempo de actividad | |||
---|---|---|---|
Datos de respuesta | Cadena de prueba | Contiene | No contiene |
abcd |
abcd |
pass | desaprobado |
abc |
abcd |
desaprobado | pass |
abc |
a |
pass | desaprobado |
Uptime Checks |
Uptime |
pass | desaprobado |
Uptime Checks |
uptime |
desaprobado | pass |
En la tabla anterior, la columna Datos de respuesta describe los datos que muestra el recurso verificado, mientras que la columna Cadena de prueba enumera el literal de string. Las dos columnas siguientes especifican el tipo de prueba y el resultado de la verificación de tiempo de actividad.
Buscar con una expresión regular
Consola de Google Cloud
Para configurar que la verificación de tiempo de actividad se apruebe cuando los datos de respuesta coincidan con una expresión regular, utiliza la siguiente configuración:
- Selecciona Coincide con la regex en el menú Tipo de concordancia del contenido de la respuesta.
- Ingresa una expresión regular en el campo Response content.
- Para verificar la configuración, haz clic en Probar.
Para configurar la verificación de tiempo de actividad para que falle cuando los datos de respuesta coincidan con una expresión regular, utiliza la siguiente configuración:
- Selecciona No coincide con la regex en el menú Tipo de concordancia del contenido de la respuesta.
- Ingresa una expresión regular en el campo Response content.
- Para verificar la configuración, haz clic en Probar.
API de Cloud Monitoring
Para configurar que la verificación de tiempo de actividad se apruebe cuando los datos de la respuesta coincidan con una expresión regular, utiliza los siguientes valores:
... "contentMatchers": [ { "content": "Set to the regular expression to be matched.", "matcher": "MATCHES_REGEX" } ], ...
Para configurar la verificación de tiempo de actividad para que falle cuando los datos de respuesta coincidan con una expresión regular, usa los siguientes valores:
... "contentMatchers": [ { "content": "Set to the regular expression to be matched.", "matcher": "NOT_MATCHES_REGEX" } ], ...
En la siguiente tabla, se muestra el estado de la verificación de tiempo de actividad para diferentes datos de respuesta, expresiones regulares y tipos de prueba:
Estado de la verificación de tiempo de actividad | |||
---|---|---|---|
Datos de respuesta | Expresión regular | Coincide con la regex | No coincide con la regex |
abcd |
abcd |
pass | desaprobado |
Uptime Checks |
[uU]ptime |
pass | desaprobado |
Uptime Checks |
[a-z]{6} |
desaprobado | pass |
Uptime Checks |
[a-zA-Z]{6} |
pass | desaprobado |
En la tabla anterior, la columna Datos de respuesta describe los datos que muestra el recurso verificado, mientras que la columna Regex enumera la expresión regular. Las dos columnas siguientes especifican el tipo de prueba y el resultado de la verificación de tiempo de actividad.
Busca un campo específico en una respuesta JSON
Puedes configurar una verificación de tiempo de actividad para validar una ruta JSON. Cuando seleccionas una prueba JSONpath, la prueba compara un valor de ruta con un número, un literal de string o una expresión regular:
Cuando especificas una JSONpath, debes especificar el objeto raíz con $.
y, luego, seguirlo con un identificador de campo específico. Cuando la respuesta JSON contenga un array de elementos, usa corchetes, []
, para identificar el elemento de array específico con el que debe coincidir. En los siguientes ejemplos, se muestra la sintaxis de la ruta:
$.type
coincide con el campotype
de un objeto raíz.$.[0].address.city
coincide con el campocity
en el objetoaddress
almacenado en el primer elemento del array de la respuesta JSON.$.content[0].phone
coincide con el campophone
del primer elemento del array del campocontent
. El campocontent
es un elemento secundario del objeto raíz.
Puedes configurar una prueba de tiempo de actividad para que coincida con varios campos. Considera el siguiente JSON:
[
{
...
"address": {
...
"city": "Gwenborough",
"geo": {
"lat": "-37.3159",
"lng": "81.1496"
}
},
},
...
]
Para que la ruta de acceso completa del campo geo
coincida con el primer elemento del array, configura JSONpath como $.[0].address.geo
y, luego, ingresa el valor completo en el campo de contenido:
{
"lat": "-37.3159",
"lng": "81.1496"
}
Si te interesa experimentar con estas opciones, busca un sitio web público que muestre una respuesta JSON. Por ejemplo, consulta Prueba de JSON.
Compara JSONpath con un número o literal de string
Consola de Google Cloud
Para configurar la verificación de tiempo de actividad para que se apruebe cuando una ruta JSON específica en los datos de respuesta coincida con un literal de string, usa la siguiente configuración:
- Selecciona Matches at JSONPath en el menú Response content match type.
- Ingresa la ruta de acceso en el campo JSONPath.
- Ingresa el número o el literal de string en el campo Response content.
- Para verificar la configuración, haz clic en Probar.
Para configurar la verificación de tiempo de actividad para que falle cuando una ruta JSON específica en los datos de respuesta coincida con un literal de string, usa la siguiente configuración:
- Selecciona No coincide con JSONPath en el menú Tipo de coincidencia del contenido de la respuesta.
- Ingresa la ruta de acceso en el campo JSONPath.
- Ingresa el número o el literal de string en el campo Response content.
- Para verificar la configuración, haz clic en Probar.
API de Cloud Monitoring
Si deseas configurar la verificación de tiempo de actividad para que se apruebe cuando un campo específico de la respuesta con formato JSON coincida con un número o un literal de string, usa los siguientes valores para el objeto ContentMatcher
:
... "contentMatchers": [ { "content" : "Set to a number, a boolean, or the string to be matched.", "matcher" : "MATCHES_JSON_PATH", "jsonPathMatcher" : { "jsonPath" : "Set to the JSONpath.", "jsonMatcher" : "EXACT_MATCH" } ], ...
Si deseas configurar la verificación de tiempo de actividad para que falle cuando un campo específico de la respuesta con formato JSON coincida con un número o un literal de string, usa los siguientes valores para el objeto ContentMatcher
:
... "contentMatchers": [ { "content" : "Set to a number, a boolean, or the string to be matched.", "matcher" : "NOT_MATCHES_JSON_PATH", "jsonPathMatcher" : { "jsonPath" : "Set to the JSONpath.", "jsonMatcher" : "EXACT_MATCH" } ], ...
Para ilustrar cómo funcionan las pruebas de coincidencia de strings de JSONpath, considera los siguientes datos de respuesta JSON:
{ "name": "Sample Uptime Check", "type": "JSONpath", "content": [ { "id": 1, "phone": "1234567890", "alias": "Exact", "enabled": true, }, { "id": 2, "phone": "1234512345", "alias": "Regex", "enabled": false, } ] }
En la siguiente tabla, se muestra el estado de la verificación de tiempo de actividad de la respuesta anterior, pero para diferentes rutas, valores de prueba y tipos de prueba:
Estado de la verificación de tiempo de actividad | |||
---|---|---|---|
JSONpath | Valor de prueba | Coincidencias de JSONpath | La ruta JSON no coincide |
$. |
"JSONpath" |
pass | desaprobado |
$. |
"Sample" |
desaprobado | pass |
$. |
"Sample Uptime Check" |
pass | desaprobado |
$. |
1 |
pass | desaprobado |
$. |
"Exact" |
pass | desaprobado |
$. |
true |
pass | desaprobado |
En la tabla anterior, la columna JSONpath identifica qué elemento probar y la columna Valor de prueba indica el valor. Las dos columnas siguientes especifican el tipo de prueba y el resultado de la verificación de tiempo de actividad.
Compara JSONpath con una expresión regular
Las coincidencias de expresiones regulares admiten la coincidencia de una string, un número, un booleano y valores JSON nulos.
Consola de Google Cloud
Para configurar que la verificación de tiempo de actividad se apruebe cuando una ruta JSON específica en los datos de respuesta coincida con una expresión regular, utiliza la siguiente configuración:
- Selecciona Matches at JSONPath en el menú Response content match type.
- Ingresa la ruta de acceso en el campo JSONPath.
- Ingresa la expresión regular en el campo Response content.
- Para verificar la configuración, haz clic en Probar.
Para configurar la verificación de tiempo de actividad para que falle cuando una JSONpath específica en los datos de respuesta coincida con una expresión regular, usa la siguiente configuración:
- Selecciona No coincide con JSONPath en el menú Tipo de coincidencia del contenido de la respuesta.
- Ingresa la ruta de acceso en el campo JSONPath.
- Ingresa la expresión regular en el campo Response content.
- Para verificar la configuración, haz clic en Probar.
API de Cloud Monitoring
Si deseas configurar la verificación de tiempo de actividad para que se apruebe cuando un campo específico de la respuesta con formato JSON coincida con una expresión regular, usa los siguientes valores para el objeto ContentMatcher
:
... "contentMatchers": [ { "content" : "Set to the regular expression to be matched." "matcher" : "MATCHES_JSON_PATH", "jsonPathMatcher" : { "jsonPath" : "Set to the JSONpath.", "jsonMatcher" : "REGEX_MATCH" } ], ...
Si deseas configurar la verificación de tiempo de actividad para que falle cuando un campo específico de la respuesta con formato JSON coincida con una expresión regular, usa los siguientes valores para el objeto ContentMatcher
:
... "contentMatchers": [ { "content" : "Set to the regular expression to be matched.", "matcher" : "NOT_MATCHES_JSON_PATH", "jsonPathMatcher" : { "jsonPath" : "Set to the JSONpath.", "jsonMatcher" : "REGEX_MATCH" } ], ...
Para ilustrar cómo funcionan las pruebas de expresión regular JSONpath, considera los siguientes datos de respuesta JSON:
{ "name": "Sample Uptime Check", "type": "JSONpath", "content": [ { "id": 1, "phone": "1234567890", "alias": "Exact", "enabled": true, }, { "id": 2, "phone": "1234512345", "alias": "Regex", "enabled": false, } ] }
En la siguiente tabla, se muestra el estado de la verificación de tiempo de actividad de la respuesta anterior, pero para diferentes rutas de acceso, expresiones regulares y tipos de prueba:
Estado de la verificación de tiempo de actividad | |||
---|---|---|---|
JSONpath | Expresión regular | JSONpath coincide con la regex | JSONpath no coincide con la regex |
$. |
[A-Z]{4}Path |
pass | desaprobado |
$. |
Sample |
desaprobado | pass |
$. |
. |
pass | desaprobado |
$. |
2 |
pass | desaprobado |
$. |
"[12345]{2}" |
pass | desaprobado |
$. |
f. |
pass | desaprobado |
En la tabla anterior, la columna JSONpath identifica qué elemento probar y la columna Regex enumera la expresión regular. Las dos columnas siguientes especifican el tipo de prueba y el resultado de la verificación de tiempo de actividad.
¿Qué sigue?
- Crea una verificación de tiempo de actividad
- Administrar verificaciones de tiempo de actividad
- Crea políticas de alertas para las verificaciones de tiempo de actividad