Este documento descreve como configurar uma verificação de tempo de atividade para validar o código de resposta HTTP e os dados de resposta enviados por um recurso verificado. Por predefinição, as verificações de tempo de atividade HTTP verificam se o código de resposta é 2xx
. Além disso, por predefinição, os dados de resposta não são validados. No entanto, pode modificar estas
definições. Por exemplo, pode configurar uma verificação de tempo de atividade HTTP para aceitar códigos de resposta 2xx
e 3xx
. Para todas as verificações de tempo de atividade, pode especificar um valor que os dados de resposta têm ou não de conter para que a verificação de tempo de atividade seja bem-sucedida.
Esta funcionalidade só é suportada para projetos do Google Cloud . Para configurações do App Hub, selecione o projeto anfitrião do App Hub ou o projeto de gestão da pasta com apps ativadas.
Como validar os dados de resposta
Pode configurar o Cloud Monitoring para validar os dados de resposta de um recurso verificado quando cria ou edita uma verificação de tempo de atividade.
Google Cloud consola
Para criar uma verificação de tempo de atividade que valide os dados de resposta, faça o seguinte:
-
Na Google Cloud consola, aceda à página
Verificações de tempo de atividade:
Aceda a Verificações de tempo de atividade
Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.
- Na barra de ferramentas da Google Cloud consola, selecione o seu Google Cloud projeto. Para configurações do App Hub, selecione o projeto anfitrião do App Hub ou o projeto de gestão da pasta com apps ativadas.
- Clique em Criar verificação de tempo de atividade.
- Introduza um Título e clique em Seguinte.
- Introduza o alvo e clique em Seguinte.
Configure a Validação da resposta:
- Para validar os dados de resposta, certifique-se de que a opção A correspondência de conteúdo está ativada é apresentada e, em seguida, preencha os campos relacionados com a validação de respostas. Para obter informações sobre estas opções, consulte a secção seguinte deste documento.
- Para as verificações de tempo de atividade HTTP, configure os códigos de resposta aceitáveis.
Por predefinição, as verificações de tempo de atividade HTTP marcam qualquer resposta
2xx
como uma resposta bem-sucedida.
Clique em Seguinte e conclua a configuração da verificação do tempo de atividade.
Cloud Monitoring API
Para configurar uma verificação de tempo de atividade para validar os dados de resposta,
preencha a matriz contentMatchers
do objeto
UptimeCheckConfig
.
Os objetos ContentMatcher
contêm os seguintes campos:
matcher
: descreve como é feita a comparação. Para ver uma lista de valores, consulteContentMatcherOption
.Não use o valor
CONTENT_MATCHER_OPTION_UNSPECIFIED
.content
: armazena o valor a pesquisar nos dados de resposta. O valor é uma string literal ou uma expressão regular.jsonPathMatcher
: armazena um objetoJsonPathMatcher
que descreve o JSONpath a pesquisar e como fazer a comparação.Omita este campo, a menos que a verificação de tempo de atividade esteja a validar um JSONpath específico.
O resto deste documento descreve como usar as opções de correspondência de conteúdo.
Opções para validar os dados de resposta
Esta secção descreve as estratégias de correspondência de strings que pode usar para validar a resposta enviada por um recurso verificado. Para cada estratégia, especifica um valor e se a deteção desse valor nos dados de resposta faz com que a verificação do tempo de atividade seja aprovada ou reprovada.
Pode não ser possível pesquisar toda a resposta de um recurso verificado:
- Verificações de tempo de atividade de HTTP e HTTPS: os primeiros 4 MB são pesquisados.
- Verificações de tempo de atividade de TCP: é feita uma pesquisa no primeiro MB.
Pesquise uma substring literal
Google Cloud consola
Para configurar a verificação de tempo de atividade para ser aprovada quando os dados de resposta contiverem uma subcadeia literal, use as seguintes definições:
- Selecione Contém no menu Tipo de correspondência de conteúdo da resposta.
- Introduza a substring literal no campo Conteúdo da resposta.
- Para validar a configuração, clique em Testar.
Para configurar a verificação de tempo de atividade de modo a falhar quando os dados de resposta contiverem uma substring literal, use as seguintes definições:
- Selecione Não contém no menu Tipo de correspondência do conteúdo da resposta.
- Introduza a substring literal no campo Conteúdo da resposta.
- Para validar a configuração, clique em Testar.
Cloud Monitoring API
Para configurar a verificação de tempo de atividade para ser aprovada quando os dados de resposta contiverem uma subcadeia literal, use os seguintes valores:
... "contentMatchers": [ { "content": "Set to the string to be matched.", "matcher": "CONTAINS_STRING" } ], ...
Para configurar a verificação de tempo de atividade para falhar quando os dados de resposta contiverem uma substring literal, use os seguintes valores:
... "contentMatchers": [ { "content": "Set to the string to be matched.", "matcher": "NOT_CONTAINS_STRING" } ], ...
A tabela seguinte apresenta o estado da verificação de tempo de atividade para diferentes dados de resposta, strings de teste e tipos de testes:
Estado da verificação de tempo de atividade | |||
---|---|---|---|
Dados de resposta | String de teste | Contém | Não contém |
abcd |
abcd |
passar | falhar |
abc |
abcd |
falhar | passar |
abc |
a |
passar | falhar |
Uptime Checks |
Uptime |
passar | falhar |
Uptime Checks |
uptime |
falhar | passar |
Na tabela anterior, a coluna Dados de resposta descreve os dados devolvidos pelo recurso selecionado, enquanto a coluna String de teste apresenta a string literal. As duas colunas seguintes especificam o tipo de teste e o resultado da verificação do tempo de atividade.
Pesquise através de uma expressão regular
Google Cloud consola
Para configurar a verificação de tempo de atividade para ser aprovada quando os dados de resposta corresponderem a uma expressão regular, use as seguintes definições:
- Selecione Corresponde à regex no menu Tipo de correspondência de conteúdo da resposta.
- Introduza uma expressão regular no campo Conteúdo da resposta.
- Para validar a configuração, clique em Testar.
Para configurar a verificação de tempo de atividade de modo a falhar quando os dados de resposta corresponderem a uma expressão regular, use as seguintes definições:
- Selecione Não corresponde à regex no menu Tipo de correspondência do conteúdo da resposta.
- Introduza uma expressão regular no campo Conteúdo da resposta.
- Para validar a configuração, clique em Testar.
Cloud Monitoring API
Para configurar a verificação de tempo de atividade para ser aprovada quando os dados de resposta corresponderem a uma expressão regular, use os seguintes valores:
... "contentMatchers": [ { "content": "Set to the regular expression to be matched.", "matcher": "MATCHES_REGEX" } ], ...
Para configurar a verificação de tempo de atividade para falhar quando os dados de resposta corresponderem a uma expressão regular, use os seguintes valores:
... "contentMatchers": [ { "content": "Set to the regular expression to be matched.", "matcher": "NOT_MATCHES_REGEX" } ], ...
A tabela seguinte apresenta o estado da verificação de tempo de atividade para diferentes dados de resposta, expressões regulares e tipos de testes:
Estado da verificação de tempo de atividade | |||
---|---|---|---|
Dados de resposta | Regex | Corresponde à expressão regular | Não corresponde à regex |
abcd |
abcd |
passar | falhar |
Uptime Checks |
[uU]ptime |
passar | falhar |
Uptime Checks |
[a-z]{6} |
falhar | passar |
Uptime Checks |
[a-zA-Z]{6} |
passar | falhar |
Na tabela anterior, a coluna Dados de resposta descreve os dados devolvidos pelo recurso selecionado, enquanto a coluna Regex apresenta a expressão regular. As duas colunas seguintes especificam o tipo de teste e o resultado da verificação do tempo de atividade.
Pesquise um campo específico numa resposta JSON
Pode configurar uma verificação de tempo de atividade para validar um JSONpath. Quando seleciona um teste JSONpath, o teste compara um valor de caminho com um número, um literal de string ou uma expressão regular:
- Compare o JSONpath a um número ou a um literal de string
- Compare o JSONpath com uma expressão regular
Quando especifica um JSONpath, tem de especificar o objeto raiz com $.
e, em seguida, usar um identificador de campo específico. Quando a resposta JSON contém uma matriz de elementos, use parênteses retos, []
, para identificar o elemento da matriz específico a corresponder. Os exemplos seguintes ilustram a sintaxe do caminho:
$.type
corresponde ao campotype
de um objeto raiz.$.[0].address.city
corresponde ao campocity
no objetoaddress
armazenado no primeiro elemento da matriz da resposta JSON.$.content[0].phone
corresponde ao campophone
do primeiro elemento da matriz do campocontent
. O campocontent
é um elemento secundário do objeto raiz.
Pode configurar um teste de tempo de atividade para corresponder a vários campos. Considere o JSON seguinte:
[
{
...
"address": {
...
"city": "Gwenborough",
"geo": {
"lat": "-37.3159",
"lng": "81.1496"
}
},
},
...
]
Para fazer corresponder todo o caminho do campo geo
no primeiro elemento da matriz,
defina o JSONpath como $.[0].address.geo
e introduza o valor completo
no campo de conteúdo:
{
"lat": "-37.3159",
"lng": "81.1496"
}
Se tiver interesse em experimentar estas opções, procure um Website público que devolva uma resposta JSON.
Compare o JSONpath com um número ou um literal de string
Google Cloud consola
Para configurar a verificação de tempo de atividade para ser aprovada quando um JSONpath específico nos dados de resposta corresponder a um literal de string, use as seguintes definições:
- Selecione Correspondências no JSONPath no menu Tipo de correspondência de conteúdo da resposta.
- Introduza o caminho no campo JSONPath.
- Introduza o número ou o literal de string no campo Conteúdo da resposta.
- Para validar a configuração, clique em Testar.
Para configurar a verificação de tempo de atividade para falhar quando um JSONpath específico nos dados de resposta corresponder a um literal de string, use as seguintes definições:
- Selecione Não corresponde no JSONPath no menu Tipo de correspondência de conteúdo da resposta.
- Introduza o caminho no campo JSONPath.
- Introduza o número ou o literal de string no campo Conteúdo da resposta.
- Para validar a configuração, clique em Testar.
Cloud Monitoring API
Para configurar a verificação de tempo de atividade de modo a ser aprovada quando um campo específico na resposta formatada em JSON corresponder a um número ou a um literal de string, use os seguintes valores para o 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 a verificação de tempo de atividade de modo a falhar quando um campo específico na resposta formatada em JSON corresponder a um número ou a um literal de string, use os seguintes valores para o 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 como funcionam os testes de correspondência de strings JSONpath, considere os seguintes dados de resposta JSON:
{ "name": "Sample Uptime Check", "type": "JSONpath", "content": [ { "id": 1, "phone": "1234567890", "alias": "Exact", "enabled": true, }, { "id": 2, "phone": "1234512345", "alias": "Regex", "enabled": false, } ] }
A tabela seguinte apresenta o estado da verificação de tempo de atividade da resposta anterior, mas para diferentes caminhos, valores de teste e tipos de teste:
Estado da verificação de tempo de atividade | |||
---|---|---|---|
JSONpath | Valor de teste | JSONpath matches | O JSONpath não corresponde |
$. |
"JSONpath" |
passar | falhar |
$. |
"Sample" |
falhar | passar |
$. |
"Sample Uptime Check" |
passar | falhar |
$. |
1 |
passar | falhar |
$. |
"Exact" |
passar | falhar |
$. |
true |
passar | falhar |
Na tabela anterior, a coluna JSONpath identifica o elemento a testar e a coluna Valor de teste apresenta o valor. As duas colunas seguintes especificam o tipo de teste e o resultado da verificação do tempo de atividade.
Compare o JSONpath com uma expressão regular
As correspondências de expressões regulares suportam a correspondência de uma string, um número, um valor booleano e valores JSON nulos.
Google Cloud consola
Para configurar a verificação de tempo de atividade para ser aprovada quando um JSONpath específico nos dados de resposta corresponder a uma expressão regular, use as seguintes definições:
- Selecione Correspondências no JSONPath no menu Tipo de correspondência de conteúdo da resposta.
- Introduza o caminho no campo JSONPath.
- Introduza a expressão regular no campo Conteúdo da resposta.
- Para validar a configuração, clique em Testar.
Para configurar a verificação de tempo de atividade de modo a falhar quando um JSONpath específico nos dados de resposta corresponder a uma expressão regular, use as seguintes definições:
- Selecione Não corresponde no JSONPath no menu Tipo de correspondência de conteúdo da resposta.
- Introduza o caminho no campo JSONPath.
- Introduza a expressão regular no campo Conteúdo da resposta.
- Para validar a configuração, clique em Testar.
Cloud Monitoring API
Para configurar a verificação de tempo de atividade para ser aprovada quando um campo específico na resposta formatada em JSON corresponde a uma expressão regular, use os seguintes valores para o 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 a verificação de tempo de atividade de modo a falhar quando um campo específico na resposta formatada em JSON corresponder a uma expressão regular, use os seguintes valores para o 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 como funcionam os testes de expressões regulares JSONpath, considere os seguintes dados de resposta JSON:
{ "name": "Sample Uptime Check", "type": "JSONpath", "content": [ { "id": 1, "phone": "1234567890", "alias": "Exact", "enabled": true, }, { "id": 2, "phone": "1234512345", "alias": "Regex", "enabled": false, } ] }
A tabela seguinte apresenta o estado da verificação de tempo de atividade da resposta anterior, mas para diferentes caminhos, expressões regulares e tipos de testes:
Estado da verificação de tempo de atividade | |||
---|---|---|---|
JSONpath | Regex | O JSONpath corresponde à regex | O JSONpath não corresponde à regex |
$. |
[A-Z]{4}Path |
passar | falhar |
$. |
Sample |
falhar | passar |
$. |
. |
passar | falhar |
$. |
2 |
passar | falhar |
$. |
"[12345]{2}" |
passar | falhar |
$. |
f. |
passar | falhar |
Na tabela anterior, a coluna JSONpath identifica o elemento a testar e a coluna Regex apresenta a expressão regular. As duas colunas seguintes especificam o tipo de teste e o resultado da verificação do tempo de atividade.
O que se segue?
- Crie uma verificação de tempo de atividade
- Faça a gestão das verificações de tempo de atividade
- Crie políticas de alerta para verificações de tempo de atividade