Dokumen ini menjelaskan cara mengonfigurasi cek uptime untuk memvalidasi kode respons HTTP dan data respons yang dikirim oleh resource yang dicentang. Secara default, cek uptime HTTP memverifikasi bahwa kode responsnya adalah 2xx
. Selain itu,
secara default, data respons tidak divalidasi. Namun, Anda dapat mengubah setelan ini. Misalnya, Anda dapat mengonfigurasi cek uptime HTTP untuk menerima kode respons 2xx
dan 3xx
. Untuk semua cek uptime, Anda dapat menentukan nilai yang harus, atau tidak boleh, berisi data respons agar cek uptime berhasil.
Cara memvalidasi data respons
Anda dapat mengonfigurasi Cloud Monitoring untuk memvalidasi data respons dari resource yang dicentang saat membuat atau mengedit cek uptime
Konsol Google Cloud
Untuk membuat cek uptime yang memvalidasi data respons, lakukan hal berikut:
-
Di panel navigasi konsol Google Cloud, pilih Monitoring, lalu pilih Uptime checks:
- Klik Buat cek uptime.
- Masukkan Judul lalu klik Berikutnya.
- Masukkan Target, lalu klik Next.
Konfigurasikan Response validation:
- Untuk memvalidasi data respons, pastikan Pencocokan konten diaktifkan ditampilkan, lalu lengkapi kolom yang terkait dengan validasi respons. Untuk mengetahui informasi tentang opsi ini, lihat bagian berikutnya dalam dokumen ini.
- Untuk cek uptime HTTP, konfigurasikan kode respons yang dapat diterima.
Secara default, cek uptime HTTP menandai respons
2xx
apa pun sebagai respons yang berhasil.
Klik Next dan selesaikan konfigurasi cek uptime.
Cloud Monitoring API
Untuk mengonfigurasi cek uptime guna memvalidasi data respons, isi array contentMatchers
untuk 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 ditelusuri dalam data respons. Nilainya adalah literal string atau ekspresi reguler.jsonPathMatcher
: Menyimpan objekJsonPathMatcher
yang menjelaskan JSONpath mana yang akan ditelusuri dan cara melakukan perbandingannya.Hapus kolom ini kecuali jika cek 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 dicentang. Untuk setiap strategi, Anda menentukan nilai dan apakah menemukan nilai tersebut dalam data respons akan menghasilkan cek uptime yang lulus atau gagal.
Seluruh respons dari resource yang dicentang mungkin tidak ditelusuri:
- Cek uptime HTTP dan HTTPS: 4 MB pertama akan ditelusuri.
- Cek uptime TCP: 1 MB pertama ditelusuri.
Mencari substring literal
Konsol Google Cloud
Untuk mengonfigurasi cek uptime yang akan diteruskan 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 Test.
Untuk mengonfigurasi cek uptime yang 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 Test.
Cloud Monitoring API
Untuk mengonfigurasi cek uptime yang lulus saat data respons berisi substring literal, gunakan nilai berikut:
... "contentMatchers": [ { "content": "Set to the string to be matched.", "matcher": "CONTAINS_STRING" } ], ...
Untuk mengonfigurasi cek uptime yang 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 cek uptime untuk berbagai data respons, string pengujian, dan jenis pengujian:
Status cek uptime | |||
---|---|---|---|
Data respons | String pengujian | Berisi | Tidak berisi |
abcd |
abcd |
berhasil | gagal |
abc |
abcd |
gagal | berhasil |
abc |
a |
berhasil | gagal |
Uptime Checks |
Uptime |
berhasil | gagal |
Uptime Checks |
uptime |
gagal | berhasil |
Pada tabel sebelumnya, kolom Data respons menjelaskan data yang ditampilkan oleh resource yang dicentang, sedangkan kolom Test string mencantumkan literal string. Dua kolom berikutnya menentukan jenis pengujian dan hasil cek uptime.
Menelusuri menggunakan ekspresi reguler
Konsol Google Cloud
Untuk mengonfigurasi cek uptime yang lulus saat data respons cocok dengan ekspresi reguler, gunakan setelan berikut:
- Pilih Cocok dengan ekspresi reguler di menu Jenis pencocokan konten respons.
- Masukkan ekspresi reguler di kolom Response content.
- Untuk memverifikasi konfigurasi, klik Test.
Untuk mengonfigurasi cek uptime 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 ekspresi reguler di kolom Response content.
- Untuk memverifikasi konfigurasi, klik Test.
Cloud Monitoring API
Untuk mengonfigurasi cek uptime yang 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 yang 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 cek uptime untuk berbagai data respons, ekspresi reguler, dan jenis pengujian:
Status cek uptime | |||
---|---|---|---|
Data respons | Regex | Cocok dengan ekspresi reguler | Tidak cocok dengan regex |
abcd |
abcd |
berhasil | gagal |
Uptime Checks |
[uU]ptime |
berhasil | gagal |
Uptime Checks |
[a-z]{6} |
gagal | berhasil |
Uptime Checks |
[a-zA-Z]{6} |
berhasil | gagal |
Dalam tabel sebelumnya, kolom Data respons menjelaskan data yang ditampilkan oleh resource yang dicentang, sedangkan kolom Regex mencantumkan ekspresi reguler. Dua kolom berikutnya menentukan jenis pengujian dan hasil cek uptime.
Menelusuri kolom tertentu dalam respons JSON
Anda dapat mengonfigurasi cek uptime untuk memvalidasi JSONpath. Saat Anda memilih pengujian JSONpath, pengujian tersebut akan membandingkan nilai jalur dengan angka, literal string, atau ekspresi reguler:
- Membandingkan JSONpath dengan angka atau literal string
- Membandingkan JSONpath dengan ekspresi reguler
Saat menentukan JSONpath, Anda harus menentukan objek root dengan $.
, lalu
mengikutinya dengan ID kolom spesifik. Jika respons JSON
berisi array elemen, gunakan tanda kurung, []
, untuk mengidentifikasi
elemen array tertentu yang akan dicocokkan. Contoh berikut menggambarkan
sintaksis jalur:
$.type
cocok dengan kolomtype
dari objek root.$.[0].address.city
cocok dengan kolomcity
di objekaddress
yang disimpan di elemen array pertama respons JSON.$.content[0].phone
cocok dengan kolomphone
dari elemen array pertama kolomcontent
. Kolomcontent
adalah turunan dari objek root.
Anda dapat mengonfigurasi pengujian waktu beroperasi 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. Misalnya, lihat Pengujian JSON.
Membandingkan JSONpath dengan angka atau literal string
Konsol Google Cloud
Untuk mengonfigurasi cek uptime yang akan diteruskan saat JSONpath tertentu dalam data respons cocok dengan literal string, gunakan setelan berikut:
- Pilih Matches at JSONPath di menu Response content match type.
- Masukkan jalur di kolom JSONPath.
- Masukkan angka atau literal string di kolom Response content.
- Untuk memverifikasi konfigurasi, klik Test.
Untuk mengonfigurasi cek uptime yang gagal saat JSONpath tertentu dalam data respons cocok dengan literal string, gunakan setelan berikut:
- Pilih Tidak 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 Test.
Cloud Monitoring API
Untuk mengonfigurasi cek uptime yang akan diteruskan 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 cek uptime yang 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 menggambarkan cara kerja pengujian pencocokan 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 cek uptime dari respons sebelumnya, tetapi untuk jalur, nilai pengujian, dan jenis pengujian yang berbeda:
Status cek uptime | |||
---|---|---|---|
JSONpath | Nilai pengujian | Kecocokan JSONpath | JSONpath tidak cocok |
$. |
"JSONpath" |
berhasil | gagal |
$. |
"Sample" |
gagal | berhasil |
$. |
"Sample Uptime Check" |
berhasil | gagal |
$. |
1 |
berhasil | gagal |
$. |
"Exact" |
berhasil | gagal |
$. |
true |
berhasil | 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 cek uptime
Membandingkan JSONpath dengan ekspresi reguler
Pencocokan ekspresi reguler mendukung pencocokan string, angka, boolean, dan nilai JSON null.
Konsol Google Cloud
Untuk mengonfigurasi cek uptime yang lulus saat JSONpath tertentu dalam data respons cocok dengan ekspresi reguler, gunakan setelan berikut:
- Pilih Matches at JSONPath di menu Response content match type.
- Masukkan jalur di kolom JSONPath.
- Masukkan ekspresi reguler di kolom Response content.
- Untuk memverifikasi konfigurasi, klik Test.
Untuk mengonfigurasi cek uptime agar gagal saat JSONpath tertentu dalam data respons cocok dengan ekspresi reguler, gunakan setelan berikut:
- Pilih Tidak cocok di JSONPath di menu Jenis pencocokan konten respons.
- Masukkan jalur di kolom JSONPath.
- Masukkan ekspresi reguler di kolom Response content.
- Untuk memverifikasi konfigurasi, klik Test.
Cloud Monitoring API
Untuk mengonfigurasi cek uptime yang akan diteruskan 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 cek uptime yang 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 menggambarkan 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 cek uptime dari 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 ekspresi reguler |
$. |
[A-Z]{4}Path |
berhasil | gagal |
$. |
Sample |
gagal | berhasil |
$. |
. |
berhasil | gagal |
$. |
2 |
berhasil | gagal |
$. |
"[12345]{2}" |
berhasil | gagal |
$. |
f. |
berhasil | 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 cek uptime