En este documento se describe cómo configurar una comprobación de tiempo de actividad para validar el código de respuesta HTTP y los datos de respuesta enviados por un recurso comprobado. De forma predeterminada, las comprobaciones de tiempo de actividad 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 estos ajustes. Por ejemplo, puedes configurar una comprobación de disponibilidad HTTP para que acepte los códigos de respuesta 2xx
y 3xx
. En todas las comprobaciones de disponibilidad, puede especificar un valor que los datos de respuesta deben o no deben contener para que la comprobación de disponibilidad se realice correctamente.
Esta función solo se admite en proyectos de Google Cloud . En el caso de las configuraciones de App Hub, seleccione el proyecto host de App Hub o el proyecto de gestión de la carpeta habilitada para aplicaciones.
Cómo validar los datos de respuesta
Puede configurar Cloud Monitoring para que valide los datos de respuesta de un recurso seleccionado al crear o editar una comprobación de tiempo de actividad.
Google Cloud consola
Para crear una comprobación de disponibilidad que valide los datos de respuesta, sigue estos pasos:
-
En la Google Cloud consola, ve a la página
Comprobaciones de tiempo de actividad:
Ve a Comprobaciones de disponibilidad del servicio.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.
- En la barra de herramientas de la Google Cloud consola, selecciona tu Google Cloud proyecto. En el caso de las configuraciones de App Hub, seleccione el proyecto host de App Hub o el proyecto de gestión de la carpeta habilitada para aplicaciones.
- Haz clic en Crear comprobación de disponibilidad.
- Introduce un título y haz clic en Siguiente.
- Introduce el Objetivo y haz clic en Siguiente.
Configura la validación de respuestas:
- Para validar los datos de respuesta, comprueba que se muestra el mensaje La coincidencia de contenido está habilitada y, a continuación, rellena 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.
- En el caso de las comprobaciones de disponibilidad HTTP, configura los códigos de respuesta aceptables.
De forma predeterminada, las comprobaciones de tiempo de actividad HTTP marcan cualquier respuesta
2xx
como correcta.
Haz clic en Siguiente y completa la configuración de la comprobación del tiempo de actividad.
API de Cloud Monitoring
Para configurar una comprobación de tiempo de actividad que valide los datos de respuesta, rellena la matriz contentMatchers
del objeto UptimeCheckConfig
.
Los objetos ContentMatcher
contienen los siguientes campos:
matcher
: describe cómo se realiza la comparación. Para ver una lista de valores, consultaContentMatcherOption
.No uses el valor
CONTENT_MATCHER_OPTION_UNSPECIFIED
.content
: almacena el valor que se va a buscar en los datos de respuesta. El valor es un literal de cadena o una expresión regular.jsonPathMatcher
: almacena un objetoJsonPathMatcher
que describe qué JSONPath se debe buscar y cómo se debe realizar la comparación.Omite este campo a menos que la comprobación de disponibilidad valide un JSONPath específico.
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 comprobado. En cada estrategia, especifica un valor y si encontrar ese valor en los datos de respuesta provoca que la comprobación del tiempo de actividad se supere o no.
Es posible que no se busque en toda la respuesta de un recurso verificado:
- Comprobaciones del tiempo de actividad de HTTP y HTTPS: se buscan los primeros 4 MB.
- Comprobaciones de disponibilidad de TCP: se busca en el primer MB.
Buscar una subcadena literal
Google Cloud consola
Para configurar la comprobación de tiempo de actividad de forma que se complete correctamente cuando los datos de respuesta contengan una subcadena literal, utilice los siguientes ajustes:
- Seleccione Contiene en el menú Tipo de coincidencia de contenido de la respuesta.
- Introduce la subcadena literal en el campo Contenido de la respuesta.
- Para verificar la configuración, haz clic en Probar.
Para configurar la comprobación de tiempo de actividad de forma que falle cuando los datos de respuesta contengan una subcadena literal, utilice los siguientes ajustes:
- Selecciona No contiene en el menú Tipo de coincidencia de contenido de la respuesta.
- Introduce la subcadena literal en el campo Contenido de la respuesta.
- Para verificar la configuración, haz clic en Probar.
API de Cloud Monitoring
Para configurar la comprobación de tiempo de actividad de forma que se supere cuando los datos de respuesta contengan una subcadena literal, utilice los siguientes valores:
... "contentMatchers": [ { "content": "Set to the string to be matched.", "matcher": "CONTAINS_STRING" } ], ...
Para configurar la comprobación de tiempo de actividad de forma que falle cuando los datos de respuesta contengan una subcadena literal, utilice 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 comprobación de disponibilidad del servicio para diferentes datos de respuesta, cadenas de prueba y tipos de prueba:
Estado de la comprobación de disponibilidad del servicio | |||
---|---|---|---|
Datos de respuesta | Cadena de prueba | Contiene | No contiene |
abcd |
abcd |
aprobar | fail |
abc |
abcd |
fail | aprobar |
abc |
a |
aprobar | fail |
Uptime Checks |
Uptime |
aprobar | fail |
Uptime Checks |
uptime |
fail | aprobar |
En la tabla anterior, la columna Datos de respuesta describe los datos devueltos por el recurso seleccionado, mientras que la columna Cadena de prueba muestra el literal de cadena. En las dos columnas siguientes se especifica el tipo de prueba y el resultado de la comprobación del tiempo de actividad.
Buscar con una expresión regular
Google Cloud consola
Para configurar la comprobación de tiempo de actividad de forma que se complete correctamente cuando los datos de respuesta coincidan con una expresión regular, utilice los siguientes ajustes:
- En el menú Tipo de coincidencia de contenido de la respuesta, selecciona Coincide con la expresión regular.
- Introduzca una expresión regular en el campo Contenido de la respuesta.
- Para verificar la configuración, haz clic en Probar.
Para configurar la comprobación de tiempo de actividad de forma que falle cuando los datos de respuesta coincidan con una expresión regular, utilice los siguientes ajustes:
- Seleccione No coincide con la expresión regular en el menú Tipo de coincidencia de contenido de la respuesta.
- Introduzca una expresión regular en el campo Contenido de la respuesta.
- Para verificar la configuración, haz clic en Probar.
API de Cloud Monitoring
Para configurar la comprobación del tiempo de actividad de forma que se complete correctamente cuando los datos de respuesta coincidan con una expresión regular, utilice los siguientes valores:
... "contentMatchers": [ { "content": "Set to the regular expression to be matched.", "matcher": "MATCHES_REGEX" } ], ...
Para configurar la comprobación del tiempo de actividad de forma que falle cuando los datos de respuesta coincidan con una expresión regular, utilice 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 comprobación del tiempo de actividad de diferentes datos de respuesta, expresiones regulares y tipos de prueba:
Estado de la comprobación de disponibilidad del servicio | |||
---|---|---|---|
Datos de respuesta | Regex | Coincide con la expresión regular | No coincide con la regex |
abcd |
abcd |
aprobar | fail |
Uptime Checks |
[uU]ptime |
aprobar | fail |
Uptime Checks |
[a-z]{6} |
fail | aprobar |
Uptime Checks |
[a-zA-Z]{6} |
aprobar | fail |
En la tabla anterior, la columna Datos de respuesta describe los datos devueltos por el recurso comprobado, mientras que la columna Expresión regular muestra la expresión regular. En las dos columnas siguientes se especifica el tipo de prueba y el resultado de la comprobación del tiempo de actividad.
Buscar un campo específico en una respuesta JSON
Puedes configurar una comprobación de disponibilidad para validar un JSONPath. Cuando seleccionas una prueba de JSONPath, la prueba compara un valor de ruta con un número, un literal de cadena o una expresión regular:
Cuando especifiques una ruta JSON, debes especificar el objeto raíz con $.
y, a continuación, el identificador de un campo específico. Cuando la respuesta JSON contiene una matriz de elementos, usa corchetes, []
, para identificar el elemento de matriz específico que quieres que coincida. 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
del objetoaddress
almacenado en el primer elemento del array de la respuesta JSON.$.content[0].phone
coincide con el campophone
del primer elemento de la matriz del campocontent
. El campocontent
es un elemento secundario del objeto raíz.
Puede 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 coincida con toda la ruta del campo geo
del primer elemento de la matriz,
defina la ruta JSON como $.[0].address.geo
e introduzca el valor completo
en el campo de contenido:
{
"lat": "-37.3159",
"lng": "81.1496"
}
Si te interesa probar estas opciones, busca un sitio web público que devuelva una respuesta JSON.
Comparar JSONPath con un literal numérico o de cadena
Google Cloud consola
Para configurar la comprobación de disponibilidad de forma que se complete cuando un JSONPath específico de los datos de respuesta coincida con un literal de cadena, utiliza los siguientes ajustes:
- Selecciona Coincidencias en JSONPath en el menú Tipo de coincidencia de contenido de la respuesta.
- Introduce la ruta en el campo JSONPath.
- Introduce el número o el literal de cadena en el campo Contenido de la respuesta.
- Para verificar la configuración, haz clic en Probar.
Para configurar la comprobación de tiempo de actividad de forma que falle cuando un JSONPath específico de los datos de respuesta coincida con un literal de cadena, utilice los siguientes ajustes:
- Selecciona No coincide con JSONPath en el menú Tipo de coincidencia de contenido de la respuesta.
- Introduce la ruta en el campo JSONPath.
- Introduce el número o el literal de cadena en el campo Contenido de la respuesta.
- Para verificar la configuración, haz clic en Probar.
API de Cloud Monitoring
Para configurar la comprobación de tiempo de actividad de forma que se complete correctamente cuando un campo específico de la respuesta en formato JSON coincida con un número o un literal de cadena, 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" } ], ...
Para configurar la comprobación de tiempo de actividad de forma que falle cuando un campo específico de la respuesta con formato JSON coincida con un número o un literal de cadena, 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 cadenas 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 comprobación del tiempo de actividad de la respuesta anterior, pero con diferentes rutas, valores de prueba y tipos de prueba:
Estado de la comprobación de disponibilidad del servicio | |||
---|---|---|---|
JSONpath | Valor de prueba | Coincidencias de JSONPath | JSONpath no coincide |
$. |
"JSONpath" |
aprobar | fail |
$. |
"Sample" |
fail | aprobar |
$. |
"Sample Uptime Check" |
aprobar | fail |
$. |
1 |
aprobar | fail |
$. |
"Exact" |
aprobar | fail |
$. |
true |
aprobar | fail |
En la tabla anterior, la columna JSONpath identifica el elemento que se va a probar y la columna Valor de prueba muestra el valor. En las dos columnas siguientes se especifica el tipo de prueba y el resultado de la comprobación del tiempo de actividad.
Comparar JSONPath con una expresión regular
Las coincidencias de expresiones regulares admiten cadenas, números, valores booleanos y valores JSON nulos.
Google Cloud consola
Para configurar la comprobación de disponibilidad de forma que se complete correctamente cuando un JSONPath específico de los datos de respuesta coincida con una expresión regular, utiliza los siguientes ajustes:
- Selecciona Coincidencias en JSONPath en el menú Tipo de coincidencia de contenido de la respuesta.
- Introduce la ruta en el campo JSONPath.
- Introduzca la expresión regular en el campo Contenido de la respuesta.
- Para verificar la configuración, haz clic en Probar.
Para configurar la comprobación de tiempo de actividad de forma que falle cuando un JSONPath específico de los datos de respuesta coincida con una expresión regular, utiliza los siguientes ajustes:
- Selecciona No coincide con JSONPath en el menú Tipo de coincidencia de contenido de la respuesta.
- Introduce la ruta en el campo JSONPath.
- Introduzca la expresión regular en el campo Contenido de la respuesta.
- Para verificar la configuración, haz clic en Probar.
API de Cloud Monitoring
Para configurar la comprobación del tiempo de actividad de forma que se supere cuando un campo específico de la respuesta con formato JSON coincida con una expresión regular, utiliza 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" } ], ...
Para configurar la comprobación del tiempo de actividad de forma que falle cuando un campo específico de la respuesta con formato JSON coincida con una expresión regular, utiliza 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 expresiones regulares 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 comprobación de tiempo de actividad de la respuesta anterior, pero para diferentes rutas, expresiones regulares y tipos de prueba:
Estado de la comprobación de disponibilidad del servicio | |||
---|---|---|---|
JSONpath | Regex | JSONPath coincide con la regex | JSONPath no coincide con la regex |
$. |
[A-Z]{4}Path |
aprobar | fail |
$. |
Sample |
fail | aprobar |
$. |
. |
aprobar | fail |
$. |
2 |
aprobar | fail |
$. |
"[12345]{2}" |
aprobar | fail |
$. |
f. |
aprobar | fail |
En la tabla anterior, la columna JSONpath identifica el elemento que se va a probar y la columna Regex muestra la expresión regular. En las dos columnas siguientes se especifica el tipo de prueba y el resultado de la comprobación del tiempo de actividad.
Siguientes pasos
- Crear una comprobación de disponibilidad del servicio
- Gestionar comprobaciones de disponibilidad del servicio
- Crear políticas de alertas para comprobaciones de disponibilidad del servicio