Validasi respons memungkinkan Anda memverifikasi bahwa resource yang dimonitor menampilkan kode status HTTP yang diharapkan dan konten payload tertentu selama pemeriksaan uptime.
Secara default, cek uptime HTTP dan HTTPS hanya memverifikasi bahwa kode status berada dalam rentang 2xx dan tidak memeriksa isi. Anda dapat menyesuaikan setelan ini untuk
menerima kode status tambahan, seperti 3xx, atau untuk memeriksa apakah payload
cocok dengan string, ekspresi reguler, atau jalur JSON tertentu.
Cara memvalidasi data respons
Anda dapat mengonfigurasi Cloud Monitoring untuk memvalidasi data respons dari resource yang diperiksa saat Anda membuat atau mengedit cek uptime.
Konsol
Untuk membuat pemeriksaan uptime yang memvalidasi data respons, lakukan langkah berikut:
-
Di konsol Google Cloud , buka halaman
Cek uptime:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.
- Di toolbar konsol Google Cloud , pilih project Google Cloud Anda. Untuk konfigurasi Pusat Aplikasi, pilih project host atau project pengelolaan Pusat Aplikasi.
- Klik Create uptime check.
- Masukkan Judul, lalu klik Berikutnya.
- Masukkan Target, lalu klik Berikutnya.
Konfigurasi Validasi respons:
- Untuk memvalidasi data respons, pastikan Pencocokan konten diaktifkan ditampilkan, lalu isi kolom yang terkait dengan validasi respons. Untuk mengetahui informasi tentang opsi ini, lihat bagian berikutnya dalam dokumen ini.
- Untuk cek uptime HTTP, konfigurasi kode respons yang dapat diterima.
Secara default, pemeriksaan uptime HTTP menandai respons
2xxsebagai respons yang berhasil.
Klik Berikutnya dan selesaikan konfigurasi pemeriksaan uptime.
REST
Untuk mengonfigurasi pemeriksaan waktu aktif guna memvalidasi data respons, isi array contentMatchers dari objek UptimeCheckConfig.
Objek ContentMatcher
berisi kolom berikut:
matcher: Menjelaskan cara perbandingan dilakukan. Untuk mengetahui daftar nilai, lihatContentMatcherOption.Jangan gunakan nilai
CONTENT_MATCHER_OPTION_UNSPECIFIED.content: Menyimpan nilai yang akan dicari dalam data respons. Nilainya adalah literal string atau ekspresi reguler.jsonPathMatcher: Menyimpan objekJsonPathMatcheryang mendeskripsikan JSONpath yang akan dicari dan cara melakukan perbandingan.Jangan sertakan kolom ini kecuali jika pemeriksaan uptime memvalidasi JSONpath tertentu.
Bagian selanjutnya dari dokumen ini menjelaskan cara menggunakan opsi pencocokan konten.
Opsi untuk memvalidasi data respons
Bagian ini menjelaskan strategi pencocokan string yang dapat Anda gunakan untuk memvalidasi respons yang dikirim oleh resource yang diperiksa. Untuk setiap strategi, Anda menentukan nilai dan apakah menemukan nilai tersebut dalam data respons menyebabkan pemeriksaan waktu aktif berhasil atau gagal.
Seluruh respons dari sumber yang diperiksa mungkin tidak ditelusuri:
- Pemeriksaan uptime HTTP dan HTTPS: 4 MB pertama dicari.
- Cek uptime TCP: 1 MB pertama dicari.
Menelusuri substring literal
Konsol
Untuk mengonfigurasi pemeriksaan uptime agar lulus saat data respons berisi substring literal, gunakan setelan berikut:
- Pilih Berisi di menu Jenis pencocokan konten respons.
- Masukkan substring literal di kolom Response content.
- Untuk memverifikasi konfigurasi, klik Uji.
Untuk mengonfigurasi pemeriksaan uptime agar gagal saat data respons berisi substring literal, gunakan setelan berikut:
- Pilih Tidak berisi di menu Jenis pencocokan konten respons.
- Masukkan substring literal di kolom Response content.
- Untuk memverifikasi konfigurasi, klik Uji.
REST
Untuk mengonfigurasi pemeriksaan uptime agar lulus saat data respons berisi substring literal, gunakan nilai berikut:
...
"contentMatchers": [
{
"content": "Set to the string to be matched.",
"matcher": "CONTAINS_STRING"
}
],
...
Untuk mengonfigurasi pemeriksaan uptime agar gagal saat data respons berisi substring literal, gunakan nilai berikut:
...
"contentMatchers": [
{
"content": "Set to the string to be matched.",
"matcher": "NOT_CONTAINS_STRING"
}
],
...
Tabel berikut menampilkan status pemeriksaan waktu aktif untuk berbagai data respons, string pengujian, dan jenis pengujian:
| Status cek uptime | |||
|---|---|---|---|
| Data respons | String pengujian | Berisi | Tidak berisi |
abcd |
abcd |
pass | gagal |
abc |
abcd |
gagal | pass |
abc |
a |
pass | gagal |
Uptime Checks |
Uptime |
pass | gagal |
Uptime Checks |
uptime |
gagal | pass |
Pada tabel sebelumnya, kolom Data respons menjelaskan data yang ditampilkan oleh resource yang diperiksa, sedangkan kolom String pengujian mencantumkan literal string. Dua kolom berikutnya menentukan jenis pengujian dan hasil pemeriksaan uptime.
Menelusuri menggunakan ekspresi reguler
Konsol
Untuk mengonfigurasi pemeriksaan waktu aktif agar lulus saat data respons cocok dengan ekspresi reguler, gunakan setelan berikut:
- Pilih Matches regex di menu Jenis pencocokan konten respons.
- Masukkan regular expression di kolom Response content.
- Untuk memverifikasi konfigurasi, klik Uji.
Untuk mengonfigurasi pemeriksaan waktu aktif agar gagal saat data respons cocok dengan ekspresi reguler, gunakan setelan berikut:
- Pilih Tidak cocok dengan ekspresi reguler di menu Jenis pencocokan konten respons.
- Masukkan regular expression di kolom Response content.
- Untuk memverifikasi konfigurasi, klik Uji.
REST
Untuk mengonfigurasi cek uptime agar lulus saat data respons cocok dengan ekspresi reguler, gunakan nilai berikut:
...
"contentMatchers": [
{
"content": "Set to the regular expression to be matched.",
"matcher": "MATCHES_REGEX"
}
],
...
Untuk mengonfigurasi cek uptime agar gagal saat data respons cocok dengan ekspresi reguler, gunakan nilai berikut:
...
"contentMatchers": [
{
"content": "Set to the regular expression to be matched.",
"matcher": "NOT_MATCHES_REGEX"
}
],
...
Tabel berikut menampilkan status pemeriksaan uptime untuk berbagai data respons, ekspresi reguler, dan jenis pengujian:
| Status cek uptime | |||
|---|---|---|---|
| Data respons | Regex | Cocok dengan ekspresi reguler | Tidak cocok dengan ekspresi reguler |
abcd |
abcd |
pass | gagal |
Uptime Checks |
[uU]ptime |
pass | gagal |
Uptime Checks |
[a-z]{6} |
gagal | pass |
Uptime Checks |
[a-zA-Z]{6} |
pass | gagal |
Pada tabel sebelumnya, kolom Data respons menjelaskan data yang ditampilkan oleh resource yang diperiksa, sedangkan kolom Regex mencantumkan ekspresi reguler. Dua kolom berikutnya menentukan jenis pengujian dan hasil pemeriksaan uptime.
Menelusuri kolom tertentu dalam respons JSON
Anda dapat mengonfigurasi cek uptime untuk memvalidasi JSONpath. Saat Anda memilih pengujian JSONpath, pengujian akan membandingkan nilai jalur dengan angka, literal string, atau dengan ekspresi reguler:
- Membandingkan JSONpath dengan literal angka atau string
- Membandingkan JSONpath dengan ekspresi reguler
Saat menentukan JSONpath, Anda harus menentukan objek root dengan $., lalu
mengikuti dengan ID kolom tertentu. Jika respons JSON
berisi array elemen, gunakan tanda kurung, [], untuk mengidentifikasi
elemen array tertentu yang akan dicocokkan. Contoh berikut mengilustrasikan sintaksis jalur:
$.typecocok dengan kolomtypedari objek root.$.[0].address.citycocok dengan kolomcitydalam objekaddressyang disimpan dalam elemen array pertama dari respons JSON.$.content[0].phonecocok dengan kolomphonedari elemen array pertama dari kolomcontent. Kolomcontentadalah turunan dari objek root.
Anda dapat mengonfigurasi pengujian uptime agar cocok dengan beberapa kolom. Pertimbangkan JSON berikut:
[
{
...
"address": {
...
"city": "Gwenborough",
"geo": {
"lat": "-37.3159",
"lng": "81.1496"
}
},
},
...
]
Untuk mencocokkan seluruh jalur kolom geo di elemen array pertama,
tetapkan JSONpath ke $.[0].address.geo, lalu masukkan nilai lengkap
di kolom konten:
{
"lat": "-37.3159",
"lng": "81.1496"
}
Jika Anda tertarik untuk bereksperimen dengan opsi ini, temukan situs publik yang menampilkan respons JSON.
Membandingkan JSONpath dengan literal angka atau string
Konsol
Untuk mengonfigurasi pemeriksaan waktu aktif agar lulus saat JSONpath tertentu dalam data respons cocok dengan literal string, gunakan setelan berikut:
- Pilih Cocok di JSONPath di menu Jenis pencocokan konten respons.
- Masukkan jalur di kolom JSONPath.
- Masukkan angka atau literal string di kolom Response content.
- Untuk memverifikasi konfigurasi, klik Uji.
Untuk mengonfigurasi pemeriksaan waktu aktif agar gagal saat JSONpath tertentu dalam data respons cocok dengan literal string, gunakan setelan berikut:
- Pilih Tidak cocok di JSONPath di menu Jenis kecocokan konten respons.
- Masukkan jalur di kolom JSONPath.
- Masukkan angka atau literal string di kolom Response content.
- Untuk memverifikasi konfigurasi, klik Uji.
REST
Untuk mengonfigurasi pemeriksaan uptime agar lulus saat kolom tertentu dalam
respons berformat JSON cocok dengan angka atau literal string,
gunakan nilai berikut untuk objek 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"
}
}
],
...
Untuk mengonfigurasi pemeriksaan waktu aktif agar gagal saat kolom tertentu dalam
respons berformat JSON cocok dengan angka atau literal string,
gunakan nilai berikut untuk objek 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"
}
}
],
...
Untuk mengilustrasikan cara kerja pengujian kecocokan string JSONpath, pertimbangkan data respons JSON berikut:
{
"name": "Sample Uptime Check",
"type": "JSONpath",
"content": [
{
"id": 1,
"phone": "1234567890",
"alias": "Exact",
"enabled": true,
},
{
"id": 2,
"phone": "1234512345",
"alias": "Regex",
"enabled": false,
}
]
}
Tabel berikut menampilkan status pemeriksaan uptime untuk respons sebelumnya, tetapi untuk jalur, nilai pengujian, dan jenis pengujian yang berbeda:
| Status cek uptime | |||
|---|---|---|---|
| JSONpath | Nilai pengujian | Kecocokan JSONpath | JSONpath tidak cocok |
$. |
"JSONpath" |
pass | gagal |
$. |
"Sample" |
gagal | pass |
$. |
"Sample Uptime Check" |
pass | gagal |
$. |
1 |
pass | gagal |
$. |
"Exact" |
pass | gagal |
$. |
true |
pass | gagal |
Pada tabel sebelumnya, kolom JSONpath mengidentifikasi elemen yang akan diuji dan kolom Nilai pengujian mencantumkan nilai. Dua kolom berikutnya menentukan jenis pengujian dan hasil pemeriksaan uptime.
Membandingkan JSONpath dengan ekspresi reguler
Pencocokan ekspresi reguler mendukung pencocokan string, angka, boolean, dan nilai JSON null.
Konsol
Untuk mengonfigurasi pemeriksaan waktu aktif agar lulus saat JSONpath tertentu dalam data respons cocok dengan ekspresi reguler, gunakan setelan berikut:
- Pilih Cocok di JSONPath di menu Jenis pencocokan konten respons.
- Masukkan jalur di kolom JSONPath.
- Masukkan regular expression di kolom Response content.
- Untuk memverifikasi konfigurasi, klik Uji.
Untuk mengonfigurasi pemeriksaan waktu aktif agar gagal saat JSONpath tertentu dalam data respons cocok dengan ekspresi reguler, gunakan setelan berikut:
- Pilih Tidak cocok di JSONPath di menu Jenis kecocokan konten respons.
- Masukkan jalur di kolom JSONPath.
- Masukkan regular expression di kolom Response content.
- Untuk memverifikasi konfigurasi, klik Uji.
REST
Untuk mengonfigurasi pemeriksaan uptime agar lulus saat kolom tertentu dalam
respons berformat JSON cocok dengan ekspresi reguler, gunakan
nilai berikut untuk objek ContentMatcher:
...
"contentMatchers": [
{
"content" : "Set to the regular expression to be matched.",
"matcher" : "MATCHES_JSON_PATH",
"jsonPathMatcher" : {
"jsonPath" : "Set to the JSONpath.",
"jsonMatcher" : "REGEX_MATCH"
}
}
],
...
Untuk mengonfigurasi pemeriksaan waktu aktif agar gagal saat kolom tertentu dalam respons berformat JSON cocok dengan ekspresi reguler, gunakan nilai berikut untuk objek 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"
}
}
],
...
Untuk mengilustrasikan cara kerja pengujian ekspresi reguler JSONpath, pertimbangkan data respons JSON berikut:
{
"name": "Sample Uptime Check",
"type": "JSONpath",
"content": [
{
"id": 1,
"phone": "1234567890",
"alias": "Exact",
"enabled": true,
},
{
"id": 2,
"phone": "1234512345",
"alias": "Regex",
"enabled": false,
}
]
}
Tabel berikut menampilkan status pemeriksaan waktu aktif untuk respons sebelumnya, tetapi untuk jalur, ekspresi reguler, dan jenis pengujian yang berbeda:
| Status cek uptime | |||
|---|---|---|---|
| JSONpath | Regex | JSONpath cocok dengan ekspresi reguler | JSONpath tidak cocok dengan regex |
$. |
[A-Z]{4}Path |
pass | gagal |
$. |
Sample |
gagal | pass |
$. |
. |
pass | gagal |
$. |
2 |
pass | gagal |
$. |
"[12345]{2}" |
pass | gagal |
$. |
f. |
pass | gagal |
Pada tabel sebelumnya, kolom JSONpath mengidentifikasi elemen yang akan diuji dan kolom Regex mencantumkan ekspresi reguler. Dua kolom berikutnya menentukan jenis pengujian dan hasil pemeriksaan uptime.