Memvalidasi data respons

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:

  1. Di konsol Google Cloud , buka halaman  Cek uptime:

    Buka Cek uptime

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.

  2. Di toolbar konsol Google Cloud , pilih project Google Cloud Anda. Untuk konfigurasi Pusat Aplikasi, pilih project host atau project pengelolaan Pusat Aplikasi.
  3. Klik Create uptime check.
  4. Masukkan Judul, lalu klik Berikutnya.
  5. Masukkan Target, lalu klik Berikutnya.
  6. 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 2xx sebagai respons yang berhasil.
  7. 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, lihat ContentMatcherOption.

    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 objek JsonPathMatcher yang 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:

  1. Pilih Berisi di menu Jenis pencocokan konten respons.
  2. Masukkan substring literal di kolom Response content.
  3. Untuk memverifikasi konfigurasi, klik Uji.

Untuk mengonfigurasi pemeriksaan uptime agar gagal saat data respons berisi substring literal, gunakan setelan berikut:

  1. Pilih Tidak berisi di menu Jenis pencocokan konten respons.
  2. Masukkan substring literal di kolom Response content.
  3. 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:

  1. Pilih Matches regex di menu Jenis pencocokan konten respons.
  2. Masukkan regular expression di kolom Response content.
  3. Untuk memverifikasi konfigurasi, klik Uji.

Untuk mengonfigurasi pemeriksaan waktu aktif agar gagal saat data respons cocok dengan ekspresi reguler, gunakan setelan berikut:

  1. Pilih Tidak cocok dengan ekspresi reguler di menu Jenis pencocokan konten respons.
  2. Masukkan regular expression di kolom Response content.
  3. 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:

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:

  • $.type cocok dengan kolom type dari objek root.
  • $.[0].address.city cocok dengan kolom city dalam objek address yang disimpan dalam elemen array pertama dari respons JSON.
  • $.content[0].phone cocok dengan kolom phone dari elemen array pertama dari kolom content. Kolom content adalah 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:

  1. Pilih Cocok di JSONPath di menu Jenis pencocokan konten respons.
  2. Masukkan jalur di kolom JSONPath.
  3. Masukkan angka atau literal string di kolom Response content.
  4. 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:

  1. Pilih Tidak cocok di JSONPath di menu Jenis kecocokan konten respons.
  2. Masukkan jalur di kolom JSONPath.
  3. Masukkan angka atau literal string di kolom Response content.
  4. 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
$.type "JSONpath" pass gagal
$.name "Sample" gagal pass
$.name "Sample Uptime Check" pass gagal
$.content[0].id 1 pass gagal
$.content[0].alias "Exact" pass gagal
$.content[0].enabled 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:

  1. Pilih Cocok di JSONPath di menu Jenis pencocokan konten respons.
  2. Masukkan jalur di kolom JSONPath.
  3. Masukkan regular expression di kolom Response content.
  4. 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:

  1. Pilih Tidak cocok di JSONPath di menu Jenis kecocokan konten respons.
  2. Masukkan jalur di kolom JSONPath.
  3. Masukkan regular expression di kolom Response content.
  4. 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
$.type [A-Z]{4}Path pass gagal
$.name Sample gagal pass
$.name .*Sample.* pass gagal
$.content[1].id 2 pass gagal
$.content[1].phone "[12345]{2}" pass gagal
$.content[1].enabled 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.

Langkah berikutnya