Dokumen ini menjelaskan cara mengonfigurasi pemeriksaan waktu aktif untuk memvalidasi kode respons HTTP dan data respons yang dikirim oleh resource yang diperiksa. Secara
default, pemeriksaan 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 pemeriksaan uptime HTTP untuk menerima kode respons 2xx
dan 3xx
. Untuk semua pemeriksaan uptime, Anda dapat menentukan nilai yang harus atau tidak boleh disertakan dalam data respons agar pemeriksaan uptime berhasil.
Cara memvalidasi data respons
Anda dapat mengonfigurasi Cloud Monitoring untuk memvalidasi data respons dari resource yang diperiksa saat membuat atau mengedit pemeriksaan uptime.
Konsol Google Cloud
Untuk membuat pemeriksaan uptime yang memvalidasi data respons, lakukan tindakan berikut:
-
Di konsol Google Cloud, buka halaman Pemeriksaan waktu aktif:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.
- Klik Create uptime check.
- Masukkan Judul, lalu klik Berikutnya.
- Masukkan Target, lalu klik Berikutnya.
Konfigurasikan Validasi respons:
- Untuk memvalidasi data respons, pastikan Pencocokan konten diaktifkan ditampilkan, lalu isi kolom yang terkait dengan validasi respons. Untuk informasi tentang opsi ini, lihat bagian berikutnya dalam dokumen ini.
- Untuk pemeriksaan uptime HTTP, konfigurasikan kode respons yang dapat diterima.
Secara default, pemeriksaan uptime HTTP menandai
respons
2xx
sebagai respons yang berhasil.
Klik Next dan selesaikan konfigurasi pemeriksaan uptime.
Cloud Monitoring API
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 ditelusuri dalam data respons. Nilainya adalah literal string atau ekspresi reguler.jsonPathMatcher
: Menyimpan objekJsonPathMatcher
yang menjelaskan JSONpath mana yang akan ditelusuri dan cara melakukan perbandingan.Hapus kolom ini kecuali jika pemeriksaan waktu aktif memvalidasi JSONpath tertentu.
Bagian lainnya dalam 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 akan menyebabkan pemeriksaan waktu aktif lulus atau gagal.
Seluruh respons dari resource yang dicentang mungkin tidak ditelusuri:
- Pemeriksaan uptime HTTP dan HTTPS: 4 MB pertama akan ditelusuri.
- Pemeriksaan uptime TCP: 1 MB pertama akan ditelusuri.
Menelusuri substring literal
Konsol Google Cloud
Untuk mengonfigurasi pemeriksaan waktu aktif 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 Test.
Untuk mengonfigurasi pemeriksaan waktu aktif 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 Test.
Cloud Monitoring API
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 waktu aktif 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 uptime untuk berbagai data respons, string pengujian, dan jenis pengujian:
Status pemeriksaan uptime | |||
---|---|---|---|
Data respons | String pengujian | Berisi | Tidak berisi |
abcd |
abcd |
lulus | gagal |
abc |
abcd |
gagal | lulus |
abc |
a |
lulus | gagal |
Uptime Checks |
Uptime |
lulus | gagal |
Uptime Checks |
uptime |
gagal | lulus |
Pada tabel sebelumnya, kolom Data respons menjelaskan data yang ditampilkan oleh resource yang dicentang, sedangkan kolom String pengujian mencantumkan literal string. Dua kolom berikutnya menentukan jenis pengujian dan hasil pemeriksaan uptime.
Menelusuri menggunakan ekspresi reguler
Konsol Google Cloud
Untuk mengonfigurasi pemeriksaan waktu aktif agar 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 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 ekspresi reguler di kolom Response content.
- Untuk memverifikasi konfigurasi, klik Test.
Cloud Monitoring API
Untuk mengonfigurasi pemeriksaan 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 pemeriksaan waktu aktif 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 waktu aktif untuk berbagai data respons, ekspresi reguler, dan jenis pengujian:
Status pemeriksaan uptime | |||
---|---|---|---|
Data respons | Regex | Cocok dengan ekspresi reguler | Tidak cocok dengan ekspresi reguler |
abcd |
abcd |
lulus | gagal |
Uptime Checks |
[uU]ptime |
lulus | gagal |
Uptime Checks |
[a-z]{6} |
gagal | lulus |
Uptime Checks |
[a-zA-Z]{6} |
lulus | gagal |
Pada tabel sebelumnya, kolom Response data 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 pemeriksaan uptime untuk memvalidasi JSONpath. Saat Anda memilih pengujian JSONpath, pengujian 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 diikuti 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:
$.type
cocok dengan kolomtype
dari objek root.$.[0].address.city
cocok dengan kolomcity
dalam 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 aktif 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
, dan 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 literal angka atau string
Konsol Google Cloud
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 Test.
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 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 pemeriksaan waktu aktif 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 string literal, 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 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 pemeriksaan waktu aktif respons sebelumnya, tetapi untuk jalur, nilai pengujian, dan jenis pengujian yang berbeda:
Status pemeriksaan uptime | |||
---|---|---|---|
JSONpath | Nilai pengujian | Kecocokan JSONpath | JSONpath tidak cocok |
$. |
"JSONpath" |
lulus | gagal |
$. |
"Sample" |
gagal | lulus |
$. |
"Sample Uptime Check" |
lulus | gagal |
$. |
1 |
lulus | gagal |
$. |
"Exact" |
lulus | gagal |
$. |
true |
lulus | gagal |
Pada tabel sebelumnya, kolom JSONpath mengidentifikasi elemen mana yang akan diuji dan kolom Test value mencantumkan nilainya. Dua kolom berikutnya menentukan jenis pengujian dan hasil pemeriksaan uptime.
Membandingkan JSONpath dengan ekspresi reguler
Kecocokan ekspresi reguler mendukung pencocokan string, angka, boolean, dan nilai JSON null.
Konsol Google Cloud
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 ekspresi reguler di kolom Response content.
- Untuk memverifikasi konfigurasi, klik Test.
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 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 pemeriksaan waktu aktif 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 respons sebelumnya, tetapi untuk jalur, ekspresi reguler, dan jenis pengujian yang berbeda:
Status pemeriksaan uptime | |||
---|---|---|---|
JSONpath | Regex | JSONpath cocok dengan ekspresi reguler | JSONpath tidak cocok dengan ekspresi reguler |
$. |
[A-Z]{4}Path |
lulus | gagal |
$. |
Sample |
gagal | lulus |
$. |
. |
lulus | gagal |
$. |
2 |
lulus | gagal |
$. |
"[12345]{2}" |
lulus | gagal |
$. |
f. |
lulus | gagal |
Pada tabel sebelumnya, kolom JSONpath mengidentifikasi elemen mana yang akan diuji dan kolom Regex mencantumkan ekspresi reguler. Dua kolom berikutnya menentukan jenis pengujian dan hasil pemeriksaan uptime.
Langkah selanjutnya
- Membuat pemeriksaan uptime
- Mengelola cek uptime
- Membuat kebijakan pemberitahuan untuk pemeriksaan uptime