In diesem Dokument wird beschrieben, wie Sie eine Verfügbarkeitsdiagnose konfigurieren, um den HTTP-Antwortcode und die Antwortdaten zu validieren, die von einer geprüften Ressource gesendet werden. HTTP-Verfügbarkeitsdiagnosen prüfen standardmäßig, ob der Antwortcode 2xx
lautet. Außerdem werden die Antwortdaten standardmäßig nicht validiert. Sie können diese Einstellungen jedoch ändern. Sie können beispielsweise eine HTTP-Verfügbarkeitsdiagnose so konfigurieren, dass die Antwortcodes 2xx
und 3xx
akzeptiert werden. Sie können für alle Verfügbarkeitsdiagnosen einen Wert angeben, den die Antwortdaten enthalten müssen oder nicht, damit die Verfügbarkeitsdiagnose erfolgreich ist.
So validieren Sie die Antwortdaten
Sie können Cloud Monitoring so konfigurieren, dass die Antwortdaten einer geprüften Ressource beim Erstellen oder Bearbeiten einer Verfügbarkeitsdiagnose validiert werden.
Google Cloud Console
So erstellen Sie eine Verfügbarkeitsdiagnose zur Validierung der Antwortdaten:
-
Rufen Sie in der Google Cloud Console die Seite
Verfügbarkeitsdiagnosen auf:
Verfügbarkeitsdiagnosen aufrufen
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.
- Klicken Sie auf Verfügbarkeitsdiagnose erstellen.
- Geben Sie einen Titel ein und klicken Sie auf Weiter.
- Geben Sie das Ziel ein und klicken Sie auf Weiter.
Konfigurieren Sie die Antwortvalidierung:
- Achten Sie zum Validieren der Antwortdaten darauf, dass Inhaltsabgleich aktiviert ist angezeigt wird. Füllen Sie dann die Felder in Bezug auf die Antwortvalidierung aus. Informationen zu diesen Optionen finden Sie im nächsten Abschnitt dieses Dokuments.
- Konfigurieren Sie für die HTTP-Verfügbarkeitsdiagnosen die zulässigen Antwortcodes.
Standardmäßig markieren HTTP-Verfügbarkeitsdiagnosen jede
2xx
-Antwort als erfolgreiche Antwort.
Klicken Sie auf Weiter und schließen Sie die Konfiguration der Verfügbarkeitsdiagnose ab.
Cloud Monitoring API
Füllen Sie das Array contentMatchers
des Objekts UptimeCheckConfig
aus, um eine Verfügbarkeitsdiagnose zur Validierung der Antwortdaten zu konfigurieren.
ContentMatcher
-Objekte enthalten die folgenden Felder:
matcher
: Beschreibt, wie der Vergleich durchgeführt wird. Eine Liste der Werte finden Sie unterContentMatcherOption
.Verwenden Sie nicht den Wert
CONTENT_MATCHER_OPTION_UNSPECIFIED
.content
: Speichert den zu suchenden Wert in den Antwortdaten. Der Wert ist ein Stringliteral oder ein regulärer Ausdruck.jsonPathMatcher
: Speichert einJsonPathMatcher
-Objekt, das beschreibt, in welchem JSON-Pfad gesucht werden soll und wie der Vergleich durchgeführt werden soll.Lassen Sie dieses Feld aus, es sei denn, die Verfügbarkeitsdiagnose validiert einen bestimmten JSON-Pfad.
Im weiteren Verlauf dieses Dokuments wird die Verwendung der Optionen für den Inhaltsabgleich beschrieben.
Optionen zum Validieren der Antwortdaten
In diesem Abschnitt werden die Strategien zum Stringabgleich beschrieben, mit denen Sie die von einer geprüften Ressource gesendete Antwort validieren können. Für jede Strategie geben Sie einen Wert an und ob dieser Wert in den Antwortdaten dazu führt, dass die Verfügbarkeitsdiagnose bestanden wird oder fehlschlägt.
Die gesamte Antwort einer geprüften Ressource wird möglicherweise nicht durchsucht:
- HTTP- und HTTPS-Verfügbarkeitsdiagnosen: Die ersten 4 MB werden durchsucht.
- TCP-Verfügbarkeitsdiagnosen: Das erste MB wird durchsucht.
Nach einem literalen Teilstring suchen
Google Cloud Console
Verwenden Sie die folgenden Einstellungen, um die Verfügbarkeitsdiagnose so zu konfigurieren, dass sie bestanden wird, wenn die Antwortdaten einen literalen Teilstring enthalten:
- Wählen Sie im Menü Übereinstimmungstyp der Antwortinhalte die Option Enthält aus.
- Geben Sie den literalen Teilstring in das Feld Antwortinhalt ein.
- Klicken Sie auf Testen, um die Konfiguration zu prüfen.
Verwenden Sie die folgenden Einstellungen, um die Verfügbarkeitsdiagnose so zu konfigurieren, dass sie fehlschlägt, wenn die Antwortdaten einen literalen Teilstring enthalten:
- Wählen Sie im Menü Übereinstimmungstyp der Antwortinhalte die Option Enthält nicht aus.
- Geben Sie den literalen Teilstring in das Feld Antwortinhalt ein.
- Klicken Sie auf Testen, um die Konfiguration zu prüfen.
Cloud Monitoring API
Verwenden Sie die folgenden Werte, um die Verfügbarkeitsdiagnose so zu konfigurieren, dass sie bestanden wird, wenn die Antwortdaten einen literalen Teilstring enthalten:
... "contentMatchers": [ { "content": "Set to the string to be matched.", "matcher": "CONTAINS_STRING" } ], ...
Verwenden Sie die folgenden Werte, um die Verfügbarkeitsdiagnose so zu konfigurieren, dass sie fehlschlägt, wenn die Antwortdaten einen literalen Teilstring enthalten:
... "contentMatchers": [ { "content": "Set to the string to be matched.", "matcher": "NOT_CONTAINS_STRING" } ], ...
In der folgenden Tabelle wird der Status der Verfügbarkeitsdiagnose für verschiedene Antwortdaten, Teststrings und Testtypen angezeigt:
Status der Verfügbarkeitsdiagnose | |||
---|---|---|---|
Antwortdaten | Test string | Enthält | Enthält nicht |
abcd |
abcd |
Bestanden | Nicht bestanden |
abc |
abcd |
Nicht bestanden | Bestanden |
abc |
a |
Bestanden | Nicht bestanden |
Uptime Checks |
Uptime |
Bestanden | Nicht bestanden |
Uptime Checks |
uptime |
Nicht bestanden | Bestanden |
In der vorherigen Tabelle beschreibt die Spalte Antwortdaten die Daten, die von der geprüften Ressource zurückgegeben werden, während die Spalte Test-String das String-Literal auflistet. In den nächsten beiden Spalten werden der Testtyp und das Ergebnis der Verfügbarkeitsdiagnose angegeben.
Mit einem regulären Ausdruck suchen
Google Cloud Console
Verwenden Sie die folgenden Einstellungen, um die Verfügbarkeitsdiagnose so zu konfigurieren, dass sie bestanden wird, wenn die Antwortdaten mit einem regulären Ausdruck übereinstimmen:
- Wählen Sie im Menü Übereinstimmungstyp der Antwortinhalte die Option Stimmt mit dem regulären Ausdruck überein aus.
- Geben Sie in das Feld Antwortinhalt einen regulären Ausdruck ein.
- Klicken Sie auf Testen, um die Konfiguration zu prüfen.
Verwenden Sie die folgenden Einstellungen, um die Verfügbarkeitsdiagnose so zu konfigurieren, dass sie fehlschlägt, wenn die Antwortdaten mit einem regulären Ausdruck übereinstimmen:
- Wählen Sie im Menü Übereinstimmungstyp der Antwortinhalte die Option Stimmt nicht mit dem regulären Ausdruck überein aus.
- Geben Sie in das Feld Antwortinhalt einen regulären Ausdruck ein.
- Klicken Sie auf Testen, um die Konfiguration zu prüfen.
Cloud Monitoring API
Verwenden Sie die folgenden Werte, um die Verfügbarkeitsdiagnose so zu konfigurieren, dass sie bestanden wird, wenn die Antwortdaten mit einem regulären Ausdruck übereinstimmen:
... "contentMatchers": [ { "content": "Set to the regular expression to be matched.", "matcher": "MATCHES_REGEX" } ], ...
Verwenden Sie die folgenden Werte, um die Verfügbarkeitsdiagnose so zu konfigurieren, dass sie fehlschlägt, wenn die Antwortdaten mit einem regulären Ausdruck übereinstimmen:
... "contentMatchers": [ { "content": "Set to the regular expression to be matched.", "matcher": "NOT_MATCHES_REGEX" } ], ...
In der folgenden Tabelle wird der Status der Verfügbarkeitsdiagnose für verschiedene Antwortdaten, reguläre Ausdrücke und Testtypen angezeigt:
Status der Verfügbarkeitsdiagnose | |||
---|---|---|---|
Antwortdaten | Regex | Stimmt mit dem Regex überein | Stimmt nicht mit dem Regex überein |
abcd |
abcd |
Bestanden | Nicht bestanden |
Uptime Checks |
[uU]ptime |
Bestanden | Nicht bestanden |
Uptime Checks |
[a-z]{6} |
Nicht bestanden | Bestanden |
Uptime Checks |
[a-zA-Z]{6} |
Bestanden | Nicht bestanden |
In der vorherigen Tabelle beschreibt die Spalte Antwortdaten die Daten, die von der geprüften Ressource zurückgegeben werden, während die Spalte Regex den regulären Ausdruck auflistet. In den nächsten beiden Spalten werden der Testtyp und das Ergebnis der Verfügbarkeitsdiagnose angegeben.
In einem bestimmten Feld in einer JSON-Antwort suchen
Sie können eine Verfügbarkeitsdiagnose konfigurieren, um einen JSON-Pfad zu validieren. Wenn Sie einen JSON-Pfadtest auswählen, vergleicht der Test einen Pfadwert mit einer Zahl, einem Stringliteral oder einem regulären Ausdruck:
- JSON-Pfad mit einer Zahl oder einem String-Literal vergleichen
- JSON-Pfad mit einem regulären Ausdruck vergleichen
Wenn Sie einen JSON-Pfad angeben, müssen Sie das Stammobjekt mit $.
angeben und ihm dann eine bestimmte Feldkennung folgen. Wenn die JSON-Antwort ein Array von Elementen enthält, verwenden Sie Klammern ([]
), um das jeweilige Arrayelement anzugeben, das abgeglichen werden soll. Die folgenden Beispiele veranschaulichen die Pfadsyntax:
$.type
entspricht dem Feldtype
eines Stammobjekts.$.[0].address.city
stimmt mit dem Feldcity
im Objektaddress
überein, das im ersten Arrayelement der JSON-Antwort gespeichert ist.$.content[0].phone
entspricht dem Feldphone
des ersten Arrayelements des Feldscontent
. Das Feldcontent
ist dem Stammobjekt untergeordnet.
Sie können einen Verfügbarkeitstest so konfigurieren, dass mehrere Felder abgeglichen werden. Betrachten Sie den folgenden JSON-Code:
[
{
...
"address": {
...
"city": "Gwenborough",
"geo": {
"lat": "-37.3159",
"lng": "81.1496"
}
},
},
...
]
Wenn Sie den gesamten Pfad des Felds geo
im ersten Arrayelement vergleichen möchten, legen Sie den JSON-Pfad auf $.[0].address.geo
fest und geben Sie den vollständigen Wert in das Inhaltsfeld ein:
{
"lat": "-37.3159",
"lng": "81.1496"
}
Wenn Sie mit diesen Optionen experimentieren möchten, suchen Sie nach einer öffentlichen Website, die eine JSON-Antwort zurückgibt. Ein Beispiel findest du unter JSON-Test.
JSONpath mit einer Zahl oder einem Stringliteral vergleichen
Google Cloud Console
Verwenden Sie die folgenden Einstellungen, um die Verfügbarkeitsdiagnose so zu konfigurieren, dass sie bestanden wird, wenn ein bestimmter JSON-Pfad in den Antwortdaten mit einem Stringliteral übereinstimmt:
- Wählen Sie im Menü Übereinstimmungstyp der Antwortinhalte die Option Übereinstimmungen bei JSONPath aus.
- Geben Sie den Pfad in das Feld JSONPath ein.
- Geben Sie die Zahl oder das Stringliteral in das Feld Antwortinhalt ein.
- Klicken Sie auf Testen, um die Konfiguration zu prüfen.
Verwenden Sie die folgenden Einstellungen, um die Verfügbarkeitsdiagnose so zu konfigurieren, dass sie fehlschlägt, wenn ein bestimmter JSON-Pfad in den Antwortdaten mit einem Stringliteral übereinstimmt:
- Wählen Sie im Menü Übereinstimmungstyp der Antwortinhalte die Option Stimmt nicht mit JSONPath überein.
- Geben Sie den Pfad in das Feld JSONPath ein.
- Geben Sie die Zahl oder das Stringliteral in das Feld Antwortinhalt ein.
- Klicken Sie auf Testen, um die Konfiguration zu prüfen.
Cloud Monitoring API
Wenn Sie die Verfügbarkeitsdiagnose so konfigurieren möchten, dass sie bestanden wird, wenn ein bestimmtes Feld in der JSON-formatierten Antwort mit einer Zahl oder einem Stringliteral übereinstimmt, verwenden Sie die folgenden Werte für das ContentMatcher
-Objekt:
... "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" } ], ...
Wenn die Verfügbarkeitsdiagnose so konfiguriert werden soll, dass sie fehlschlägt, wenn ein bestimmtes Feld in der JSON-formatierten Antwort mit einer Zahl oder einem Stringliteral übereinstimmt, verwenden Sie die folgenden Werte für das ContentMatcher
-Objekt:
... "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" } ], ...
Die folgenden JSON-Antwortdaten veranschaulichen die Funktionsweise der JSON-Pfadstringabgleichstests:
{ "name": "Sample Uptime Check", "type": "JSONpath", "content": [ { "id": 1, "phone": "1234567890", "alias": "Exact", "enabled": true, }, { "id": 2, "phone": "1234512345", "alias": "Regex", "enabled": false, } ] }
In der folgenden Tabelle wird der Status der Verfügbarkeitsdiagnose aus der vorherigen Antwort angezeigt, jedoch für andere Pfade, Testwerte und Testtypen:
Status der Verfügbarkeitsdiagnose | |||
---|---|---|---|
JSONpath | Testwert | JSONPath-Übereinstimmungen | JSON-Pfad stimmt nicht überein |
$. |
"JSONpath" |
Bestanden | Nicht bestanden |
$. |
"Sample" |
Nicht bestanden | Bestanden |
$. |
"Sample Uptime Check" |
Bestanden | Nicht bestanden |
$. |
1 |
Bestanden | Nicht bestanden |
$. |
"Exact" |
Bestanden | Nicht bestanden |
$. |
true |
Bestanden | Nicht bestanden |
In der vorherigen Tabelle gibt die Spalte JSONpath an, welches Element getestet werden soll, und der Wert in der Spalte Testwert. In den nächsten beiden Spalten werden der Testtyp und das Ergebnis der Verfügbarkeitsdiagnose angegeben.
JSON-Pfad mit einem regulären Ausdruck vergleichen
Übereinstimmungen mit regulären Ausdrücken unterstützen den Abgleich von JSON-Werten mit einem String, einer Zahl, einem booleschen Wert und Nullwerten.
Google Cloud Console
Verwenden Sie die folgenden Einstellungen, um die Verfügbarkeitsdiagnose so zu konfigurieren, dass sie bestanden wird, wenn ein bestimmter JSON-Pfad in den Antwortdaten mit einem regulären Ausdruck übereinstimmt:
- Wählen Sie im Menü Übereinstimmungstyp der Antwortinhalte die Option Übereinstimmungen bei JSONPath aus.
- Geben Sie den Pfad in das Feld JSONPath ein.
- Geben Sie den regulären Ausdruck in das Feld Antwortinhalt ein.
- Klicken Sie auf Testen, um die Konfiguration zu prüfen.
Verwenden Sie die folgenden Einstellungen, um die Verfügbarkeitsdiagnose so zu konfigurieren, dass sie fehlschlägt, wenn ein bestimmter JSON-Pfad in den Antwortdaten mit einem regulären Ausdruck übereinstimmt:
- Wählen Sie im Menü Übereinstimmungstyp der Antwortinhalte die Option Stimmt nicht mit JSONPath überein.
- Geben Sie den Pfad in das Feld JSONPath ein.
- Geben Sie den regulären Ausdruck in das Feld Antwortinhalt ein.
- Klicken Sie auf Testen, um die Konfiguration zu prüfen.
Cloud Monitoring API
Wenn Sie die Verfügbarkeitsdiagnose so konfigurieren möchten, dass sie bestanden wird, wenn ein bestimmtes Feld in der JSON-formatierten Antwort mit einem regulären Ausdruck übereinstimmt, verwenden Sie die folgenden Werte für das ContentMatcher
-Objekt:
... "contentMatchers": [ { "content" : "Set to the regular expression to be matched." "matcher" : "MATCHES_JSON_PATH", "jsonPathMatcher" : { "jsonPath" : "Set to the JSONpath.", "jsonMatcher" : "REGEX_MATCH" } ], ...
Wenn die Verfügbarkeitsdiagnose so konfiguriert werden soll, dass sie fehlschlägt, wenn ein bestimmtes Feld in der Antwort im JSON-Format mit einem regulären Ausdruck übereinstimmt, verwenden Sie die folgenden Werte für das ContentMatcher
-Objekt:
... "contentMatchers": [ { "content" : "Set to the regular expression to be matched.", "matcher" : "NOT_MATCHES_JSON_PATH", "jsonPathMatcher" : { "jsonPath" : "Set to the JSONpath.", "jsonMatcher" : "REGEX_MATCH" } ], ...
Die folgenden JSON-Antwortdaten veranschaulichen die Funktionsweise der Tests für reguläre Ausdrücke des JSON-Pfads:
{ "name": "Sample Uptime Check", "type": "JSONpath", "content": [ { "id": 1, "phone": "1234567890", "alias": "Exact", "enabled": true, }, { "id": 2, "phone": "1234512345", "alias": "Regex", "enabled": false, } ] }
In der folgenden Tabelle wird der Status der Verfügbarkeitsdiagnose aus der vorherigen Antwort angezeigt, jedoch für andere Pfade, reguläre Ausdrücke und Testtypen:
Status der Verfügbarkeitsdiagnose | |||
---|---|---|---|
JSONpath | Regex | JSON-Pfad stimmt mit regulärem Ausdruck überein | JSON-Pfad stimmt nicht mit Regex überein |
$. |
[A-Z]{4}Path |
Bestanden | Nicht bestanden |
$. |
Sample |
Nicht bestanden | Bestanden |
$. |
. |
Bestanden | Nicht bestanden |
$. |
2 |
Bestanden | Nicht bestanden |
$. |
"[12345]{2}" |
Bestanden | Nicht bestanden |
$. |
f. |
Bestanden | Nicht bestanden |
In der vorherigen Tabelle gibt die Spalte JSONpath an, welches Element getestet werden soll, und die Spalte Regex enthält den regulären Ausdruck. In den nächsten beiden Spalten werden der Testtyp und das Ergebnis der Verfügbarkeitsdiagnose angegeben.
Nächste Schritte
- Verfügbarkeitsdiagnose erstellen
- Verfügbarkeitsdiagnosen verwalten
- Benachrichtigungsrichtlinien für Verfügbarkeitsdiagnosen erstellen