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 défaut, les vérifications de disponibilité HTTP vérifient que le code de réponse est 2xx
. De plus, 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 les 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é réussisse.
Valider les données de réponse
Vous pouvez configurer Cloud Monitoring pour valider les données de réponse d'une ressource vérifié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 la 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 de ce document.
- Pour les vérifications de disponibilité HTTP, configurez les codes de réponse acceptés.
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 disponibilité.
API Cloud Monitoring
Pour configurer un test de disponibilité afin de valider les données de réponse, renseignez le tableau contentMatchers
de l'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.Omettre ce champ, sauf si la vérification de la disponibilité valide un chemin JSON spécifique.
Le reste de ce document explique comment utiliser les options de mise en correspondance du contenu.
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 soit pas recherchée:
- Tests de disponibilité HTTP et HTTPS: les quatre premiers Mo sont recherchés.
- Tests de disponibilité TCP: le premier Mo est recherché.
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 la vérification de l'état de fonctionnement afin qu'elle réussisse 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": "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 liste la chaîne littérale. Les deux colonnes suivantes indiquent le type de test et le résultat du test de disponibilité.
Rechercher à l'aide d'une expression régulière
Console Google Cloud
Pour configurer la vérification de l'état de fonctionnement afin qu'elle réussisse 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 Response content (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 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 Response content (Contenu de la réponse).
- Pour vérifier la configuration, cliquez sur Test (Tester).
API Cloud Monitoring
Pour configurer la vérification de l'état de fonctionnement afin qu'elle réussisse 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" } ], ...
Pour configurer la vérification de l'état de fonctionnement de sorte qu'elle échoue 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": "NOT_MATCHES_REGEX" } ], ...
Le tableau suivant indique 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 Expression régulière liste l'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 chemin JSON. 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 la syntaxe de 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 du 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. Prenons l'exemple de code 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 site Web public 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 la chaîne littérale dans le champ Contenu de la réponse.
- Pour vérifier la configuration, cliquez sur Test (Tester).
Pour configurer la vérification de la disponibilité de sorte qu'elle échoue 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 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 la 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 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 la vérification de l'état de fonctionnement de sorte qu'elle échoue 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" : "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 à tester, 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 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 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 la vérification de la disponibilité de sorte qu'elle échoue 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 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 Test (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 la vérification de l'état de fonctionnement de sorte qu'elle échoue 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" : "NOT_MATCHES_JSON_PATH", "jsonPathMatcher" : { "jsonPath" : "Set to the JSONpath.", "jsonMatcher" : "REGEX_MATCH" } ], ...
Pour illustrer le fonctionnement des tests d'expression régulière 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, expressions régulières et types de test:
É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é