Ce document explique comment configurer un test de disponibilité pour valider le code de réponse HTTP et les données de réponse envoyées par une ressource vérifiée. Par
par défaut, les tests de disponibilité HTTP vérifient que le code de réponse est 2xx
. Par ailleurs,
par défaut, les données de réponse
ne sont pas validées. Toutefois, vous pouvez modifier ces
paramètres. Par exemple, vous pouvez configurer un test
de disponibilité HTTP pour accepter
Codes de réponse 2xx
et 3xx
. Pour tous les tests de disponibilité,
vous pouvez spécifier une valeur que les données de réponse
doivent ou ne doivent pas contenir pour que le test de disponibilité aboutisse.
Comment valider les données de réponse
Vous pouvez configurer Cloud Monitoring pour valider les données de réponse une ressource testée lorsque vous créez ou modifiez un test de disponibilité.
console Google Cloud
Pour créer un test de disponibilité qui valide les données de réponse, procédez comme suit :
-
Dans la console Google Cloud, accédez à la page Tests de disponibilité:
Accéder à la page Tests de disponibilité
Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.
- Cliquez sur Create uptime check (Créer un test de disponibilité).
- Saisissez un titre, puis cliquez sur Suivant.
- Saisissez la cible, puis cliquez sur Suivant.
Configurez la validation de réponse:
- Pour valider les données de réponse, assurez-vous que l'option La correspondance de contenu est activée s'affiche, puis remplissez les champs liés à la validation de la réponse. Pour en savoir plus sur ces options, consultez la section suivante document.
- Pour les tests de disponibilité HTTP, configurez les codes de réponse acceptables.
Par défaut, les tests de disponibilité HTTP marquent toute réponse
2xx
comme une réponse réussie.
Cliquez sur Suivant et terminez la configuration de la vérification de l'état de fonctionnement.
API Cloud Monitoring
Pour configurer un test de disponibilité
afin de valider les données de réponse,
remplissez le tableau contentMatchers
du
objet UptimeCheckConfig
.
Les objets ContentMatcher
contiennent les champs suivants :
matcher
: décrit comment la comparaison est effectuée. Pour obtenir la liste des valeurs, consultezContentMatcherOption
N'utilisez pas la valeur
CONTENT_MATCHER_OPTION_UNSPECIFIED
.content
: stocke la valeur à rechercher dans les données de réponse. La valeur est un littéral de chaîne ou une expression régulière.jsonPathMatcher
: stocke un objetJsonPathMatcher
qui décrit le chemin JSON à rechercher et la manière d'effectuer la comparaison.Omettez ce champ, sauf si le test de disponibilité valide JSONpath spécifique.
Le reste de ce document explique comment utiliser la fonction de correspondance de contenu options.
Options de validation des données de réponse
Cette section décrit les stratégies de mise en correspondance de chaînes que vous pouvez utiliser pour valider la réponse envoyée par une ressource validée. Pour chaque stratégie, vous spécifiez une valeur et indiquez si la recherche de cette valeur dans les données de réponse entraîne la réussite ou l'échec du test de disponibilité.
Il est possible que la réponse complète d'une ressource vérifiée ne fasse pas l'objet d'une recherche:
- Tests de disponibilité HTTP et HTTPS : les quatre premiers Mo sont recherchés.
- Tests de disponibilité TCP: la recherche porte sur le premier Mo.
Rechercher une sous-chaîne littérale
console Google Cloud
Pour configurer le test de disponibilité de sorte qu'il réussisse lorsque les données de réponse contiennent une sous-chaîne littérale, utilisez les paramètres suivants :
- Sélectionnez Contient dans le menu Type de correspondance du contenu de la réponse.
- Saisissez la sous-chaîne littérale dans le champ Contenu de la réponse.
- Pour vérifier la configuration, cliquez sur Test (Tester).
Pour configurer le test de disponibilité de sorte qu'il échoue lorsque les données de réponse contiennent une sous-chaîne littérale, utilisez les paramètres suivants :
- Sélectionnez Ne contient pas dans le menu Type de correspondance du contenu de la réponse.
- Saisissez la sous-chaîne littérale dans le champ Contenu de la réponse.
- Pour vérifier la configuration, cliquez sur Test (Tester).
API Cloud Monitoring
Pour configurer le test de disponibilité afin qu'il soit réussi lorsque les données de réponse contiennent un une sous-chaîne littérale, utilisez les valeurs suivantes:
... "contentMatchers": [ { "content": "Set to the string to be matched.", "matcher": "CONTAINS_STRING" } ], ...
Pour configurer la vérification de l'état de fonctionnement de sorte qu'elle échoue lorsque les données de réponse contiennent une sous-chaîne littérale, utilisez les valeurs suivantes :
... "contentMatchers": [ { "content": "Set to the string to be matched.", "matcher": "NOT_CONTAINS_STRING" } ], ...
Le tableau suivant indique l'état de la vérification de la disponibilité pour différentes données de réponse, chaînes de test et types de test :
État du test de disponibilité | |||
---|---|---|---|
Données de réponse | Chaîne de test | Contient | Ne contient pas |
abcd |
abcd |
réussite | échec |
abc |
abcd |
échec | réussite |
abc |
a |
réussite | échec |
Uptime Checks |
Uptime |
réussite | échec |
Uptime Checks |
uptime |
échec | réussite |
Dans le tableau précédent, la colonne Données de réponse décrit les données renvoyées par la ressource vérifiée, tandis que la colonne Chaîne de test indique littéral de chaîne. Les deux colonnes suivantes indiquent le type de test et le résultat du test de disponibilité.
Effectuer une recherche à l'aide d'une expression régulière
console Google Cloud
À configurer le test de disponibilité afin qu'il soit réussi lorsque les données de réponse correspondent une expression régulière, utilisez les paramètres suivants:
- Sélectionnez Correspond à l'expression régulière dans le menu Type de correspondance du contenu de la réponse.
- Saisissez une expression régulière dans le champ Contenu de la réponse.
- Pour vérifier la configuration, cliquez sur Tester.
Pour configurer le test de disponibilité de sorte qu'il échoue lorsque les données de réponse correspondent à une expression régulière, utilisez les paramètres suivants :
- Sélectionnez Ne correspond pas à l'expression régulière dans le menu Type de correspondance du contenu de la réponse.
- Saisissez une expression régulière dans le champ Contenu de la réponse.
- Pour vérifier la configuration, cliquez sur Test (Tester).
API Cloud Monitoring
À configurer le test de disponibilité afin qu'il soit réussi lorsque les données de réponse correspondent une expression régulière, utilisez les valeurs suivantes:
... "contentMatchers": [ { "content": "Set to the regular expression to be matched.", "matcher": "MATCHES_REGEX" } ], ...
À configurer le test de disponibilité pour qu'il échoue en cas de correspondance des données de réponse une expression régulière, utilisez les valeurs suivantes:
... "contentMatchers": [ { "content": "Set to the regular expression to be matched.", "matcher": "NOT_MATCHES_REGEX" } ], ...
Le tableau suivant affiche l'état du test de disponibilité pour différentes données de réponse, expressions régulières et types de test:
État du test de disponibilité | |||
---|---|---|---|
Données de réponse | Regex | Correspond à l'expression régulière | Ne correspond pas à l'expression régulière |
abcd |
abcd |
réussite | échec |
Uptime Checks |
[uU]ptime |
réussite | échec |
Uptime Checks |
[a-z]{6} |
échec | réussite |
Uptime Checks |
[a-zA-Z]{6} |
réussite | échec |
Dans le tableau précédent, la colonne Données de réponse décrit les données renvoyées par la ressource vérifiée, tandis que la colonne Regex indique une expression régulière. Les deux colonnes suivantes indiquent le type de test et le résultat du test de disponibilité.
Rechercher un champ spécifique dans une réponse JSON
Vous pouvez configurer un test de disponibilité pour valider un JSONPath. Lorsque vous sélectionnez un test JSONPath, il compare une valeur de chemin à un nombre, une chaîne littérale ou une expression régulière :
Lorsque vous spécifiez un JSONPath, vous devez spécifier l'objet racine avec $.
, puis le suivre d'un identifiant de champ spécifique. Lorsque la réponse JSON contient un tableau d'éléments, utilisez des crochets, []
, pour identifier l'élément de tableau spécifique à faire correspondre. Les exemples suivants illustrent
Syntaxe du chemin d'accès:
$.type
correspond au champtype
d'un objet racine.$.[0].address.city
correspond au champcity
de l'objetaddress
stocké dans le premier élément de tableau de la réponse JSON.$.content[0].phone
correspond au champphone
du premier élément du tableau du champcontent
. Le champcontent
est un enfant de l'objet racine.
Vous pouvez configurer un test de disponibilité pour qu'il corresponde à plusieurs champs. Tenez compte des JSON suivant:
[
{
...
"address": {
...
"city": "Gwenborough",
"geo": {
"lat": "-37.3159",
"lng": "81.1496"
}
},
},
...
]
Pour faire correspondre l'intégralité du chemin d'accès du champ geo
dans le premier élément du tableau, définissez JSONPath sur $.[0].address.geo
et saisissez la valeur complète dans le champ de contenu :
{
"lat": "-37.3159",
"lng": "81.1496"
}
Si vous souhaitez tester ces options, recherchez un qui renvoie une réponse JSON. Par exemple, consultez Test JSON.
Comparer JSONpath à un nombre ou un littéral de chaîne
console Google Cloud
Pour configurer le test de disponibilité de sorte qu'il réussisse lorsqu'un chemin JSON spécifique dans les données de réponse correspond à une chaîne littérale, utilisez les paramètres suivants :
- Sélectionnez Correspondances sur JSONPath dans le menu Type de correspondance du contenu de la réponse.
- Saisissez le chemin d'accès dans le champ JSONPath.
- Saisissez le nombre ou le littéral de chaîne dans le champ Contenu de la réponse.
- Pour vérifier la configuration, cliquez sur Test (Tester).
Pour configurer le test de disponibilité afin qu'il échoue lorsqu'un chemin JSONpath spécifique dans le si les données de réponse correspondent à un littéral de chaîne, utilisez les paramètres suivants:
- Sélectionnez Ne correspond pas sur JSONPath dans le menu Type de correspondance du contenu de la réponse.
- Saisissez le chemin d'accès dans le champ JSONPath.
- Saisissez le nombre ou le littéral de chaîne dans le champ Contenu de la réponse.
- Pour vérifier la configuration, cliquez sur Tester.
API Cloud Monitoring
Pour configurer la vérification de l'état de fonctionnement afin qu'elle réussisse lorsqu'un champ spécifique de la réponse au format JSON correspond à un nombre ou à une chaîne littérale, utilisez les valeurs suivantes pour l'objet 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" } ], ...
Pour configurer le test de disponibilité afin qu'il échoue lorsqu'un champ spécifique du
La réponse au format JSON correspond à un nombre ou à un littéral de chaîne.
Utilisez les valeurs suivantes pour l'objet 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" } ], ...
Pour illustrer le fonctionnement des tests de correspondance de chaîne JSONpath, examinons les données de réponse JSON suivantes :
{ "name": "Sample Uptime Check", "type": "JSONpath", "content": [ { "id": 1, "phone": "1234567890", "alias": "Exact", "enabled": true, }, { "id": 2, "phone": "1234512345", "alias": "Regex", "enabled": false, } ] }
Le tableau suivant affiche l'état de la vérification de l'état de disponibilité de la réponse précédente, mais pour différents chemins, valeurs de test et types de test :
État du test de disponibilité | |||
---|---|---|---|
JSONpath | Valeur de test | Correspondances JSONpath | JSONpath ne correspond pas |
$. |
"JSONpath" |
réussite | échec |
$. |
"Sample" |
échec | réussite |
$. |
"Sample Uptime Check" |
réussite | échec |
$. |
1 |
réussite | échec |
$. |
"Exact" |
réussite | échec |
$. |
true |
réussite | échec |
Dans le tableau précédent, la colonne JSONpath identifie l'élément à test, et la colonne Valeur de test indique la valeur. Les deux colonnes suivantes spécifient le type de test et le résultat du test de disponibilité.
Comparer JSONPath à une expression régulière
Les correspondances d'expression régulière acceptent les correspondances avec une chaîne, un nombre, une valeur booléenne et des valeurs JSON nulles.
console Google Cloud
Pour configurer le test de disponibilité de sorte qu'il réussisse lorsqu'un chemin JSON spécifique dans les données de réponse correspond à une expression régulière, utilisez les paramètres suivants :
- Sélectionnez Correspond à JSONPath dans le menu Type de correspondance du contenu de la réponse.
- Saisissez le chemin d'accès dans le champ JSONPath.
- Saisissez l'expression régulière dans le champ Response content (Contenu de la réponse).
- Pour vérifier la configuration, cliquez sur Test (Tester).
Pour configurer le test de disponibilité afin qu'il échoue lorsqu'un chemin JSONpath spécifique dans le si les données de réponse correspondent à une expression régulière, utilisez les paramètres suivants:
- Sélectionnez Ne correspond pas sur JSONPath dans le menu Type de correspondance du contenu de la réponse.
- Saisissez le chemin d'accès dans le champ JSONPath.
- Saisissez l'expression régulière dans le champ Response content (Contenu de la réponse).
- Pour vérifier la configuration, cliquez sur Tester.
API Cloud Monitoring
Pour configurer la vérification de l'état de fonctionnement afin qu'elle réussisse lorsqu'un champ spécifique de la réponse au format JSON correspond à une expression régulière, utilisez les valeurs suivantes pour l'objet ContentMatcher
:
... "contentMatchers": [ { "content" : "Set to the regular expression to be matched." "matcher" : "MATCHES_JSON_PATH", "jsonPathMatcher" : { "jsonPath" : "Set to the JSONpath.", "jsonMatcher" : "REGEX_MATCH" } ], ...
Pour configurer le test de disponibilité afin qu'il échoue lorsqu'un champ spécifique du
Une réponse au format JSON correspond à une expression régulière. Utilisez le code suivant :
pour l'objet 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" } ], ...
Pour illustrer le fonctionnement des tests d'expressions régulières JSONpath, Prenez en compte les données de réponse JSON suivantes:
{ "name": "Sample Uptime Check", "type": "JSONpath", "content": [ { "id": 1, "phone": "1234567890", "alias": "Exact", "enabled": true, }, { "id": 2, "phone": "1234512345", "alias": "Regex", "enabled": false, } ] }
Le tableau suivant affiche l'état du test de disponibilité dans la réponse précédente, mais pour des chemins, des expressions régulières et des types de test différents:
État du test de disponibilité | |||
---|---|---|---|
JSONpath | Regex | JSONPath correspond à l'expression régulière | JSONPath ne correspond pas à l'expression régulière |
$. |
[A-Z]{4}Path |
réussite | échec |
$. |
Sample |
échec | réussite |
$. |
. |
réussite | échec |
$. |
2 |
réussite | échec |
$. |
"[12345]{2}" |
réussite | échec |
$. |
f. |
réussite | échec |
Dans le tableau précédent, la colonne JSONpath identifie l'élément à tester, et la colonne Regex liste l'expression régulière. Les deux colonnes suivantes spécifient le type de test et le résultat du test de disponibilité.
Étape suivante
- Créer un test de disponibilité
- Gérer les tests de disponibilité
- Créer des règles d'alerte pour les tests de disponibilité