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. Standardmäßig wird bei HTTP-Verfügbarkeitschecks geprüft, ob der Antwortcode 2xx
ist. 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 2xx
- und 3xx
-Antwortcodes akzeptiert werden. Für alle Verfügbarkeitsdiagnosen können Sie einen Wert angeben, den die Antwortdaten enthalten müssen oder nicht enthalten dürfen, damit die Verfügbarkeitsdiagnose erfolgreich ist.
Antwortdaten validieren
Sie können Cloud Monitoring so konfigurieren, dass die Antwortdaten einer geprüften Ressource validiert werden, wenn Sie eine Verfügbarkeitsdiagnose erstellen oder bearbeiten.
Google Cloud Console
So erstellen Sie eine Verfügbarkeitsdiagnose, mit der die Antwortdaten validiert werden:
-
Rufen Sie in der Google Cloud Console die Seite Uptime-Prüfungen 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:
- Damit die Antwortdaten validiert werden können, muss Content-Abgleich ist aktiviert angezeigt werden. Füllen Sie dann die Felder aus, die sich auf die Antwortvalidierung beziehen. Weitere Informationen zu diesen Optionen finden Sie im nächsten Abschnitt dieses Dokuments.
- Konfigurieren Sie für die HTTP-Verfügbarkeitschecks die zulässigen Antwortcodes.
Standardmäßig kennzeichnen HTTP-Verfügbarkeitsdiagnosen jede
2xx
-Antwort als erfolgreiche Antwort.
Klicken Sie auf Weiter und schließen Sie die Konfiguration der Uptime-Prüfung ab.
Cloud Monitoring API
Wenn Sie eine Verfügbarkeitsdiagnose zum Validieren der Antwortdaten konfigurieren möchten, füllen Sie das contentMatchers
-Array des Objekts UptimeCheckConfig
aus.
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
: Hier wird der Wert gespeichert, nach dem in den Antwortdaten gesucht werden soll. Der Wert ist ein Stringliteral oder ein regulärer Ausdruck.jsonPathMatcher
: Speichert einJsonPathMatcher
-Objekt, das beschreibt, nach welchem JSONpath gesucht werden soll und wie der Vergleich durchgeführt werden soll.Lassen Sie dieses Feld weg, es sei denn, bei der Verfügbarkeitsdiagnose wird ein bestimmter JSON-Pfad validiert.
Im Rest dieses Dokuments wird beschrieben, wie Sie die Optionen für den Inhaltsabgleich verwenden.
Optionen zur Validierung der Antwortdaten
In diesem Abschnitt werden die Stringabgleichsstrategien beschrieben, mit denen Sie die von einer geprüften Ressource gesendete Antwort validieren können. Für jede Strategie geben Sie einen Wert und an, ob die Verfügbarkeitsdiagnose bestanden oder fehlgeschlagen ist, wenn dieser Wert in den Antwortdaten gefunden wird.
Die gesamte Antwort einer geprüften Ressource wird möglicherweise nicht durchsucht:
- HTTP- und HTTPS-Verfügbarkeitsdiagnosen: Die ersten 4 MB werden geprüft.
- TCP-Verfügbarkeitsdiagnosen: Die ersten 1 MB werden durchsucht.
Nach einem wörtlichen Teilstring suchen
Google Cloud Console
Wenn die Verfügbarkeitsdiagnose erfolgreich sein soll, wenn die Antwortdaten einen literalen Teilstring enthalten, verwenden Sie die folgenden Einstellungen:
- Wählen Sie im Menü Übereinstimmungstyp für Antwortinhalt die Option Enthält aus.
- Geben Sie den Literal-Substring in das Feld Antwortinhalt ein.
- Klicken Sie auf Testen, um die Konfiguration zu prüfen.
Wenn die Verfügbarkeitsdiagnose fehlschlagen soll, wenn die Antwortdaten einen literalen Teilstring enthalten, verwenden Sie die folgenden Einstellungen:
- Wählen Sie im Menü Übereinstimmungstyp für Antwortinhalt die Option Enthält nicht aus.
- Geben Sie den Literal-Substring in das Feld Antwortinhalt ein.
- Klicken Sie auf Testen, um die Konfiguration zu prüfen.
Cloud Monitoring API
Wenn die Uptime-Prüfung so konfiguriert werden soll, dass sie bestanden wird, wenn die Antwortdaten einen literalen Teilstring enthalten, verwenden Sie die folgenden Werte:
... "contentMatchers": [ { "content": "Set to the string to be matched.", "matcher": "CONTAINS_STRING" } ], ...
Wenn die Uptime-Prüfung fehlschlagen soll, wenn die Antwortdaten einen literalen Teilstring enthalten, verwenden Sie die folgenden Werte:
... "contentMatchers": [ { "content": "Set to the string to be matched.", "matcher": "NOT_CONTAINS_STRING" } ], ...
In der folgenden Tabelle sehen Sie den Status der Verfügbarkeitsdiagnose für verschiedene Antwortdaten, Teststrings und Testtypen:
Status der Verfügbarkeitsdiagnose | |||
---|---|---|---|
Antwortdaten | Test string | Enthält | Enthält nicht |
abcd |
abcd |
pass | Nicht bestanden |
abc |
abcd |
Nicht bestanden | pass |
abc |
a |
pass | Nicht bestanden |
Uptime Checks |
Uptime |
pass | Nicht bestanden |
Uptime Checks |
uptime |
Nicht bestanden | pass |
In der vorherigen Tabelle werden in der Spalte Antwortdaten die von der geprüften Ressource zurückgegebenen Daten beschrieben, während in der Spalte Teststring das Stringliteral aufgeführt ist. In den nächsten beiden Spalten werden der Testtyp und das Ergebnis der Verfügbarkeitsprüfung angegeben.
Suche mit regulären Ausdrücken
Google Cloud Console
Wenn die Verfügbarkeitsdiagnose erfolgreich sein soll, wenn die Antwortdaten mit einem regulären Ausdruck übereinstimmen, verwenden Sie die folgenden Einstellungen:
- Wählen Sie im Menü Übereinstimmungstyp für Antwortinhalt die Option Stimmt mit dem Regex überein aus.
- Geben Sie in das Feld Antwortinhalt einen regulären Ausdruck ein.
- Klicken Sie auf Testen, um die Konfiguration zu prüfen.
Wenn die Verfügbarkeitsdiagnose fehlschlagen soll, wenn die Antwortdaten mit einem regulären Ausdruck übereinstimmen, verwenden Sie die folgenden Einstellungen:
- Wählen Sie im Menü Übereinstimmungstyp für Antwortinhalt 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
Wenn die Uptime-Prüfung bestehen soll, wenn die Antwortdaten mit einem regulären Ausdruck übereinstimmen, verwenden Sie die folgenden Werte:
... "contentMatchers": [ { "content": "Set to the regular expression to be matched.", "matcher": "MATCHES_REGEX" } ], ...
Wenn die Uptime-Prüfung fehlschlagen soll, wenn die Antwortdaten mit einem regulären Ausdruck übereinstimmen, verwenden Sie die folgenden Werte:
... "contentMatchers": [ { "content": "Set to the regular expression to be matched.", "matcher": "NOT_MATCHES_REGEX" } ], ...
In der folgenden Tabelle sehen Sie den Status der Verfügbarkeitsdiagnose für verschiedene Antwortdaten, reguläre Ausdrücke und Testtypen:
Status der Verfügbarkeitsdiagnose | |||
---|---|---|---|
Antwortdaten | Regex | Stimmt mit dem Regex überein | Stimmt nicht mit dem Regex überein |
abcd |
abcd |
pass | Nicht bestanden |
Uptime Checks |
[uU]ptime |
pass | Nicht bestanden |
Uptime Checks |
[a-z]{6} |
Nicht bestanden | pass |
Uptime Checks |
[a-zA-Z]{6} |
pass | Nicht bestanden |
In der vorherigen Tabelle werden in der Spalte Antwortdaten die von der geprüften Ressource zurückgegebenen Daten beschrieben. In der Spalte Regex ist der reguläre Ausdruck aufgeführt. In den nächsten beiden Spalten werden der Testtyp und das Ergebnis der Verfügbarkeitsprüfung angegeben.
In einer JSON-Antwort in einem bestimmten Feld suchen
Sie können eine Verfügbarkeitsdiagnose so konfigurieren, dass ein JSONPath geprüft wird. Wenn Sie einen JSONPath-Test auswählen, wird ein Pfadwert mit einer Zahl, einem Stringliteral oder einem regulären Ausdruck verglichen:
- JSONpath mit einer Zahl oder einem Stringliteral vergleichen
- JSONPath mit einem regulären Ausdruck vergleichen
Wenn Sie einen JSONPath angeben, müssen Sie das Stammobjekt mit $.
und dann eine bestimmte Feldkennung angeben. Wenn die JSON-Antwort ein Array von Elementen enthält, verwenden Sie Klammern ([]
), um das zu vergleichende Arrayelement anzugeben. Die folgenden Beispiele veranschaulichen die Pfadsyntax:
$.type
stimmt mit dem Feldtype
eines Stammobjekts überein.$.[0].address.city
stimmt mit dem Feldcity
imaddress
-Objekt überein, das im ersten Arrayelement der JSON-Antwort gespeichert ist.$.content[0].phone
stimmt mit dem Feldphone
des ersten Arrayelements des Feldscontent
überein. Das Feldcontent
ist ein untergeordnetes Element des Stammobjekts.
Sie können einen Uptime-Test so konfigurieren, dass er mit mehreren Feldern übereinstimmt. Betrachten Sie die folgende JSON-Datei:
[
{
...
"address": {
...
"city": "Gwenborough",
"geo": {
"lat": "-37.3159",
"lng": "81.1496"
}
},
},
...
]
Wenn Sie den gesamten Pfad des Felds geo
im ersten Arrayelement abgleichen möchten, legen Sie den JSONPath auf $.[0].address.geo
fest und geben Sie den vollständigen Wert in das Inhaltsfeld ein:
{
"lat": "-37.3159",
"lng": "81.1496"
}
Wenn Sie diese Optionen ausprobieren möchten, suchen Sie eine öffentliche Website, die eine JSON-Antwort zurückgibt. Weitere Informationen finden Sie beispielsweise unter JSON-Test.
JSONPath mit einer Zahl oder einem Stringliteral vergleichen
Google Cloud Console
Wenn die Verfügbarkeitsdiagnose erfolgreich sein soll, wenn ein bestimmter JSON-Pfad in den Antwortdaten mit einem Stringliteral übereinstimmt, verwenden Sie die folgenden Einstellungen:
- Wählen Sie im Menü Übereinstimmungstyp für Antwortinhalt die Option Stimmt mit JSONPath überein 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.
Wenn die Verfügbarkeitsdiagnose fehlschlagen soll, wenn ein bestimmter JSON-Pfad in den Antwortdaten mit einem Stringliteral übereinstimmt, verwenden Sie die folgenden Einstellungen:
- Wählen Sie im Menü Übereinstimmungstyp für Antwortinhalt die Option Stimmt nicht mit JSONPath überein 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.
Cloud Monitoring API
Wenn die Uptime-Prüfung bestanden werden soll, 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 Uptime-Prüfung fehlschlagen soll, wenn ein bestimmtes Feld in der JSON-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" } ], ...
Um zu veranschaulichen, wie die JSONpath-Stringabgleichstests funktionieren, sehen wir uns die folgenden JSON-Antwortdaten an:
{ "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 sehen Sie den Status der Uptime-Prüfung der vorherigen Antwort, jedoch für unterschiedliche Pfade, Testwerte und Testtypen:
Status der Verfügbarkeitsdiagnose | |||
---|---|---|---|
JSONpath | Testwert | JSONPath-Übereinstimmungen | JSONPath stimmt nicht überein |
$. |
"JSONpath" |
pass | Nicht bestanden |
$. |
"Sample" |
Nicht bestanden | pass |
$. |
"Sample Uptime Check" |
pass | Nicht bestanden |
$. |
1 |
pass | Nicht bestanden |
$. |
"Exact" |
pass | Nicht bestanden |
$. |
true |
pass | Nicht bestanden |
In der vorherigen Tabelle gibt die Spalte JSONpath an, welches Element getestet werden soll, und die Spalte Testwert enthält den Wert. In den nächsten beiden Spalten werden der Testtyp und das Ergebnis der Verfügbarkeitsprüfung angegeben.
JSONPath mit einem regulären Ausdruck vergleichen
Übereinstimmungen mit regulären Ausdrücken unterstützen die Übereinstimmung mit Strings, Zahlen, booleschen Werten und JSON-Werten vom Typ „null“.
Google Cloud Console
Wenn die Verfügbarkeitsdiagnose so konfiguriert werden soll, dass sie bestanden wird, wenn ein bestimmter JSON-Pfad in den Antwortdaten mit einem regulären Ausdruck übereinstimmt, verwenden Sie die folgenden Einstellungen:
- Wählen Sie im Menü Übereinstimmungstyp für Antwortinhalt die Option Stimmt mit JSONPath überein 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.
Wenn die Verfügbarkeitsdiagnose fehlschlagen soll, wenn ein bestimmter JSON-Pfad in den Antwortdaten mit einem regulären Ausdruck übereinstimmt, verwenden Sie die folgenden Einstellungen:
- Wählen Sie im Menü Übereinstimmungstyp für Antwortinhalt die Option Stimmt nicht mit JSONPath überein 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.
Cloud Monitoring API
Wenn die Uptime-Prüfung bestanden werden soll, wenn ein bestimmtes Feld in der JSON-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 Uptime-Prüfung fehlschlagen soll, wenn ein bestimmtes Feld in der JSON-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" : "NOT_MATCHES_JSON_PATH", "jsonPathMatcher" : { "jsonPath" : "Set to the JSONpath.", "jsonMatcher" : "REGEX_MATCH" } ], ...
Um zu veranschaulichen, wie die regulären Ausdruckstests von JSONpath funktionieren, sehen wir uns die folgenden JSON-Antwortdaten an:
{ "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 sehen Sie den Status der Verfügbarkeitsdiagnose aus der vorherigen Antwort, jedoch für unterschiedliche Pfade, reguläre Ausdrücke und Testtypen:
Status der Verfügbarkeitsdiagnose | |||
---|---|---|---|
JSONpath | Regex | JSONPath stimmt mit Regex überein | JSONPath stimmt nicht mit dem Regex überein |
$. |
[A-Z]{4}Path |
pass | Nicht bestanden |
$. |
Sample |
Nicht bestanden | pass |
$. |
. |
pass | Nicht bestanden |
$. |
2 |
pass | Nicht bestanden |
$. |
"[12345]{2}" |
pass | Nicht bestanden |
$. |
f. |
pass | 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ügbarkeitsprüfung angegeben.
Nächste Schritte
- Verfügbarkeitsdiagnose erstellen
- Verfügbarkeitsdiagnosen verwalten
- Benachrichtigungsrichtlinien für Verfügbarkeitsdiagnosen erstellen