Membuat monitor sintetis

Dokumen ini menjelaskan cara membuat monitor sintetis untuk menguji ketersediaan, konsistensi, dan performa layanan, aplikasi, halaman web, dan API Anda. Anda menyediakan pengujian untuk aplikasi Anda. Monitor sintetis menjalankan skrip tersebut dan mencatat hasil pengujian serta data tambahan seperti latensi. Untuk menerima notifikasi saat pengujian gagal, Anda dapat mengonfigurasi kebijakan pemberitahuan untuk memantau hasil pengujian.

Tentang monitor sintetis

Monitor sintetis secara berkala menjalankan fungsi Cloud Run generasi ke-2 dengan tujuan tunggal yang di-deploy di Cloud Run. Saat membuat monitor sintetis, Anda menentukan fungsi Cloud Run, yang harus ditulis dalam Node.js, dan frekuensi eksekusi. Misalnya, Anda dapat mengonfigurasi fungsi Cloud Run untuk berinteraksi dengan halaman web menggunakan Puppeteer. Anda juga dapat mengonfigurasi fungsi Cloud Run untuk berinteraksi dengan API menggunakan modul Axios. Anda mungkin juga ingin menguji resource yang berada dalam jaringan VPC.

Untuk membuat fungsi Cloud Run, Anda dapat menggunakan editor langsung atau mengupload file zip. Jika memilih untuk menggunakan editor inline, Anda dapat memulai dengan kerangka yang disediakan. Setelah Anda membuat monitor sintetis, Cloud Monitoring akan menggunakan sistem penjadwalan yang menjadwalkan eksekusi berkala fungsi Cloud Run Anda. Saat Anda menentukan region tempat fungsi Cloud Run berada, perintah yang memicu eksekusi dapat berasal dari region mana pun yang didukung oleh server pemeriksaan waktu aktif. Untuk mengetahui informasi selengkapnya, lihat Mencantumkan alamat IP server cek uptime.

Anda dapat membuat kebijakan pemberitahuan agar Anda diberi tahu saat terjadi kegagalan pengujian:

  • Saat Anda membuat monitor sintetis menggunakan Konsol Google Cloud, perilaku default-nya adalah membuat kebijakan pemberitahuan. Anda menyediakan saluran notifikasi. Kebijakan pemberitahuan default dikonfigurasi untuk memberi tahu Anda saat ada dua kegagalan pengujian berturut-turut atau lebih.

  • Saat membuat monitor sintetis menggunakan Cloud Monitoring API, Anda harus membuat kebijakan pemberitahuan untuk memantau jenis metrik uptime_check/check_passed untuk resource Cloud Run tempat fungsi Cloud Run berjalan.

Pertimbangan frekuensi eksekusi

Anda mengonfigurasi frekuensi eksekusi fungsi Cloud Run. Untuk menentukan frekuensi eksekusi, pertimbangkan tujuan tingkat layanan (SLO) untuk layanan Anda. Untuk mendeteksi potensi pelanggaran SLO, Anda perlu sering menjalankan pengujian. Namun, SLO untuk layanan Anda bukanlah satu-satunya pertimbangan. Anda juga perlu mempertimbangkan bagaimana rasio eksekusi diterjemahkan menjadi beban pada layanan dan biaya Anda. Setiap eksekusi memberikan beban pada layanan Anda, sehingga makin sering Anda menjalankan fungsi Cloud Run, makin banyak beban yang Anda terapkan ke layanan. Sebagai referensi, interval eksekusi default untuk pemeriksaan uptime adalah satu menit.

Frekuensi eksekusi juga menentukan seberapa cepat Anda dapat menerima notifikasi saat pengujian gagal. Pemantauan akan membuka insiden dan mengirim notifikasi setelah kegagalan pengujian berturut-turut kedua. Misalnya, jika frekuensi eksekusi Anda adalah 5 menit, maka perlu waktu 10 menit sebelum ada dua pengujian yang gagal. Anda akan diberi tahu setelah kegagalan pengujian kedua.

Kode contoh fungsi Cloud Run

Untuk template dan contoh, lihat Contoh untuk monitor sintetis. Anda dapat menggunakan contoh ini sebagai titik awal untuk fungsi Cloud Run. Jika Anda adalah developer berpengalaman, sebaiknya pertimbangkan untuk menggunakan Gemini untuk membuat kode untuk monitor sintetis sehingga mengurangi waktu pengembangan Anda. Penggunaan Gemini untuk membuat kode masih dalam Pratinjau Publik.

Template generik, yang dapat Anda pilih saat membuat monitor sintetis menggunakan konsol Google Cloud, dikonfigurasi untuk mengumpulkan data rekaman aktivitas dan log untuk permintaan HTTP keluar. Solusi ini memanfaatkan modul auto-instrumentation-node OpenTelemetry dan logger winston. Karena dependensi pada produk open source, Anda akan melihat perubahan pada struktur data trace dan log. Oleh karena itu, data log dan trace yang dikumpulkan hanya boleh digunakan untuk tujuan proses debug.

Anda dapat menerapkan pendekatan Anda sendiri untuk mengumpulkan data trace dan log untuk permintaan HTTP keluar. Untuk contoh pendekatan kustom, lihat class SyntheticAutoInstrumentation.

Konfigurasi fungsi Cloud Run

Saat mengonfigurasi fungsi Cloud Run, Anda harus menentukan setelan runtime, build, koneksi, dan keamanan, atau menerima setelan default:

  • Nilai default untuk memori yang dialokasikan mungkin tidak memadai. Sebaiknya Anda menetapkan kolom ini minimal 2 GiB.

  • Nilai default untuk setelan transfer data masuk fungsi Cloud Run Anda adalah mengizinkan semua traffic. Anda dapat menggunakan setelan ini atau setelan yang lebih ketat.

    Jika Anda mengizinkan semua traffic, fase validasi pertama yang dilakukan oleh fungsi Cloud Run, yang dilakukan di tingkat jaringan, selalu berhasil. Fase kedua validasi menentukan apakah pemanggil telah diberi izin untuk menjalankan fungsi Cloud Run. Otorisasi bergantung pada peran Identity and Access Management (IAM) pemanggil. Secara default, Cloud Monitoring diberi izin untuk menjalankan fungsi Cloud Run Anda. Untuk informasi tentang cara melihat atau mengubah setelan transfer data masuk, lihat Setelan traffic masuk.

Batasan fungsi Cloud Run

  • Nama fungsi Cloud Run Anda tidak boleh berisi garis bawah.

  • Anda dapat mengumpulkan data pelacakan dan log untuk permintaan HTTP keluar hanya jika menggunakan template generik.

  • Hanya fungsi HTTP yang didukung. Jika menggunakan konsol Google Cloud untuk membuat monitor sintetis, Anda akan diberi fungsi default yang mengkueri URL. Sumber untuk fungsi default, yang dapat diubah, tersedia di repositori Git generic-synthetic-nodejs.

    Untuk informasi tentang fungsi HTTP, lihat Menulis fungsi HTTP.

  • Jika Anda menggunakan API, perintah deployment harus menentukan bahwa fungsi Cloud Run adalah generasi ke-2. Jika Anda menggunakan Konsol Google Cloud, deployment akan ditangani untuk Anda. Untuk informasi selengkapnya, lihat Men-deploy fungsi Cloud Run.

  • Lingkungan runtime dibatasi untuk Node.js. Untuk mengetahui informasi selengkapnya, lihat Node. Versi Node.js berikut didukung: 12, 14, 16, 18, dan 20.

Data yang dikumpulkan oleh monitor sintetis

Bagian ini menjelaskan data yang dikumpulkan untuk monitor sintetis Anda. Untuk informasi tentang cara melihat hasil eksekusi, lihat Menjelajahi hasil monitor sintetis.

Histori eksekusi

Untuk setiap monitor sintetis, histori hasil eksekusi dikumpulkan. Data ini mencakup hal berikut:

  • Deret waktu yang mencatat keberhasilan atau kegagalan eksekusi dari waktu ke waktu.

  • Deret waktu yang mencatat durasi eksekusi kode. Waktu eksekusi fungsi tidak dicatat. Data latensi ditulis sebagai deret waktu uptime_check/request_latency untuk resource Cloud Run tempat fungsi Cloud Run berjalan. Diagram data ini disediakan di halaman Synthetic monitor details.

  • Log yang berisi informasi tentang eksekusi monitor sintetis, seperti informasi tentang detail pengujian dan kegagalan. Log yang tersedia bergantung pada fungsi Cloud Run Anda. Misalnya, jika Anda menggunakan template Mocha, log akan menyertakan informasi tentang apakah pengujian lulus atau gagal dan durasi pengujian. Pelacakan tumpukan, jika disertakan, mencantumkan baris kode yang gagal, jenis error, dan pesan error.

  • Secara opsional, rekaman aktivitas dan log untuk permintaan HTTP keluar. Untuk mengetahui informasi tentang cara mengumpulkan data ini, lihat Request latency.

Metrik dan log fungsi Cloud Run

Metrik dan log untuk fungsi Cloud Run Anda. Data ini, yang dikumpulkan oleh fungsi Cloud Run, mencakup informasi tentang jumlah eksekusi per detik, waktu eksekusi, dan penggunaan memori fungsi Anda.

Latensi permintaan

Data latensi untuk permintaan HTTP yang dibuat oleh monitor sintetis secara otomatis dikumpulkan dan disimpan oleh Cloud Trace.

Untuk mengumpulkan data rekaman aktivitas, log, dan latensi untuk permintaan HTTP keluar yang dibuat oleh monitor sintetis, Anda harus menggunakan template generik. Untuk mengetahui informasi selengkapnya, lihat Contoh untuk monitor sintetis.

Sebelum memulai

  1. Untuk mendapatkan izin yang diperlukan guna melihat dan mengubah monitor sintetis menggunakan konsol Google Cloud, minta administrator untuk memberi Anda peran IAM berikut di project Anda:

    Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

    Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

  2. Enable the Cloud Monitoring API, Artifact Registry API, Cloud Build API, Cloud Functions API, Cloud Logging API, Pub/Sub API, and Cloud Run Admin API APIs.

    Enable the APIs

  3. Pastikan project Google Cloud Anda berisi akun layanan Compute Engine default. Akun layanan ini dibuat saat Anda mengaktifkan Compute Engine API dan memiliki nama yang mirip dengan 12345-compute@.

    Di konsol Google Cloud, buka halaman Service Accounts:

    Buka Service Accounts

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

    Jika akun layanan Compute Engine default tidak ada, klik Buat akun layanan dan selesaikan dialog.

  4. Pastikan akun layanan Compute Engine default, atau akun layanan yang Anda buat, telah diberi peran Editor (roles/editor).

    Untuk melihat peran yang diberikan ke akun layanan Anda, lakukan hal berikut:

    1. Di konsol Google Cloud, buka halaman IAM:

      Buka IAM

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

    2. Pilih Sertakan pemberian peran yang disediakan Google.
    3. Jika akun layanan yang digunakan oleh monitor sintetis Anda tidak tercantum, atau jika akun layanan tersebut belum diberi peran yang menyertakan izin dalam peran Agen Cloud Trace (roles/cloudtrace.agent), berikan peran ini ke akun layanan Anda.
  5. Konfigurasikan saluran notifikasi yang ingin Anda gunakan untuk menerima notifikasi. Sebaiknya buat beberapa jenis saluran notifikasi. Untuk informasi selengkapnya, lihat Membuat dan mengelola saluran notifikasi dan Membuat dan mengelola saluran notifikasi melalui API.

Membuat monitor sintetis

Konsol

Saat Anda membuat monitor sintetis menggunakan konsol Google Cloud, fungsi Cloud Run baru (generasi ke-2) akan di-deploy dan monitor untuk fungsi Cloud Run tersebut akan dibuat. Anda tidak dapat membuat monitor sintetis yang memantau fungsi Cloud Run yang ada.

  1. Pastikan Anda telah mengaktifkan API yang diperlukan, project Anda berisi akun layanan Compute Engine default, dan akun ini telah diberi peran Editor (roles/editor). Untuk informasi selengkapnya, lihat Sebelum memulai.
  2. Di konsol Google Cloud, buka halaman  Synthetic monitoring:

    Buka Pemantauan sintetis

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

  3. Pilih Buat Monitor Sintetis.
  4. Pilih template untuk fungsi Cloud Run Anda:

    • Pemantau sintetis kustom: Gunakan template ini jika Anda ingin mengumpulkan data log atau data rekaman aktivitas untuk permintaan HTTP keluar.

    • Pemantau sintetis Mocha: Gunakan template ini saat Anda menulis rangkaian pengujian Mocha.

    • Pemeriksa link rusak: Gunakan template ini untuk menguji URI dan jumlah link yang dapat dikonfigurasi yang ditemukan di URI tersebut. Untuk mengetahui informasi tentang kolom untuk pemeriksa ini, lihat Membuat pemeriksa link rusak.

  5. Masukkan nama untuk monitor.

  6. Opsional: Perbarui Response Timeout, Check Frequency, dan tambahkan label yang ditentukan pengguna.

  7. Lakukan salah satu hal berikut:

  8. Dalam dialog fungsi Cloud Run, lakukan hal berikut:

    1. Masukkan nama tampilan dan pilih wilayah. Nama harus unik dalam region.

    2. Di bagian Runtime, build, connections and security settings, lakukan hal berikut:

      • Tinjau setelan default dan perbarui jika diperlukan.

      • Di kolom Runtime service account, pilih akun layanan.

    3. Edit kode yang dihasilkan, atau tulis atau upload kode untuk fungsi Cloud Run Anda:

      • Untuk mengedit kode yang dihasilkan, masukkan kode Anda sendiri, atau muat fungsi contoh default, pilih Editor Inline. Fungsi contoh, yang bergantung pada template yang Anda pilih sebelumnya, mengirimkan permintaan ke URL tertentu. Anda dapat mengubah fungsi default.

      • Untuk memuat file ZIP dari sistem lokal, pilih Upload ZIP.

        Jika mengupload file ZIP dari sistem lokal, Anda juga harus menentukan bucket Cloud Storage untuk file ZIP tersebut. Jika Anda tidak memiliki bucket Cloud Storage yang sesuai, buat bucket.

      • Untuk memuat file ZIP dari Cloud Storage, pilih ZIP from Cloud Storage, pilih bucket penyimpanan, lalu pilih file ZIP yang akan dimuat.

        Anda juga dapat membuat fungsi Cloud Run menggunakan halaman fungsi Cloud Run di Konsol Google Cloud. Untuk membuat monitor sintetis yang memantau salinan fungsi Cloud Run tersebut, buka tab Source, lalu klik Download zip. Kemudian, Anda dapat mengupload file zip.

    4. Klik Apply function.

  9. Konfigurasikan kebijakan pemberitahuan:

    1. Opsional: Perbarui nama kebijakan pemberitahuan dan durasi kegagalan sebelum notifikasi dikirim.

    2. Tambahkan saluran notifikasi.

  10. Klik Create.

    Fungsi Cloud Run yang Anda tentukan akan di-build dan di-deploy sebagai generasi ke-2, dan monitor sintetis akan dibuat.

gcloud

Saat membuat monitor sintetis menggunakan Google Cloud CLI atau Cloud Monitoring API, Anda meneruskan nama fungsi ke panggilan API. Oleh karena itu, Anda hanya dapat membuat monitor sintetis yang memantau fungsi Cloud Run yang ada.

  1. Pastikan Anda telah mengaktifkan API yang diperlukan, project Anda berisi akun layanan Compute Engine default, dan akun ini telah diberi peran Editor (roles/editor). Untuk informasi selengkapnya, lihat Sebelum memulai.
  2. Tulis dan deploy fungsi Cloud Run generasi ke-2 Anda.

    Misalnya, untuk men-deploy contoh synthetics-sdk-nodejs di repositori Google Cloud/synthetics-sdk-nodejs, lakukan hal berikut:

    1. Clone repositori dan buka lokasi kode sumber:

      git clone https://github.com/GoogleCloudPlatform/synthetics-sdk-nodejs.git
      cd synthetics-sdk-nodejs/samples/generic-synthetic-nodejs
      
    2. Deploy fungsi Cloud Run menggunakan perintah gcloud functions deploy:

      gcloud functions deploy FUNCTION_NAME \
      --gen2 --region="us-west2" --source="." \
      --entry-point=SyntheticFunction --trigger-http --runtime=nodejs18
      

      Pada perintah gcloud functions deploy, lakukan hal berikut:

      • Pastikan nilai kolom FUNCTION_NAME unik dalam region deployment-nya.

      • Sertakan flag --gen2 dan tetapkan region deployment.

      • Tetapkan kolom --entry-point sebagai berikut:

        • Mocha: SyntheticMochaSuite
        • Bukan Mocha: SyntheticFunction.
      • Tetapkan kolom --runtime ke nodejs18.

      • Sertakan flag --trigger-http.

      • Tetapkan kolom --ingress-settings jika Anda tidak ingin menggunakan setelan default, yang mengizinkan semua traffic.

      Fungsi Cloud Run mem-build, lalu men-deploy fungsi Cloud Run Anda. Hasil perintah Google Cloud CLI menyertakan informasi tentang fungsi, termasuk namanya yang sepenuhnya memenuhi syarat:

      name: projects/PROJECT_ID/locations/REGION/functions/FUNCTION_NAME
      

      Untuk informasi selengkapnya tentang cara men-deploy fungsi, lihat Men-deploy fungsi Cloud Run.

    Untuk mencantumkan fungsi Cloud Run di project Google Cloud Anda, gunakan perintah gcloud functions list:

    gcloud functions list
    

    Respons panggilan ini adalah entri daftar, setiap entri mencantumkan fungsi Cloud Run:

    NAME: function-1
    STATE: ACTIVE
    TRIGGER: HTTP Trigger
    REGION: us-west2
    ENVIRONMENT: 2nd gen
    

    Untuk menemukan nama yang sepenuhnya memenuhi syarat untuk fungsi Cloud Run tertentu, jalankan perintah gcloud monitoring uptime describe.

  3. Untuk membuat monitor sintetis, jalankan perintah gcloud monitoring uptime create:

    gcloud monitoring uptime create DISPLAY_NAME --synthetic-target=TARGET
    

    Sebelum menjalankan perintah sebelumnya, lakukan hal berikut:

    • Ganti DISPLAY_NAME dengan nama untuk monitor sintetis Anda.
    • Ganti TARGET dengan nama lengkap fungsi Cloud Run Anda.
  4. Buat kebijakan pemberitahuan.

    Karena kompleksitas konfigurasi kebijakan pemberitahuan, sebaiknya buka halaman Synthetic monitors di konsol Google Cloud, dan gunakan opsi untuk membuat kebijakan pemberitahuan. Dengan pendekatan ini, sebagian besar kolom kebijakan pemberitahuan akan diisi untuk Anda. Untuk membuat kebijakan pemberitahuan menggunakan konsol Google Cloud, klik Create policy dari halaman Synthetic monitors.

    Jika Anda berencana menggunakan Google Cloud CLI atau Cloud Monitoring API, konfigurasikan filter kondisi sebagai berikut:

    "filter": "resource.type = \"cloud_run_revision\" AND
                metric.type = \"monitoring.googleapis.com/uptime_check/check_passed\" AND
                metric.labels.check_id = \"CHECK_ID\"",
    

    Kondisi memantau deret waktu uptime_check/check_passed yang ditulis oleh monitor sintetis Anda. Pastikan untuk mengganti CHECK_ID dengan ID monitor sintetis, dan yang disertakan dalam data respons perintah buat.

    Untuk informasi tentang cara membuat kebijakan pemberitahuan, lihat Membuat kebijakan pemberitahuan menggunakan API.

API

Saat membuat monitor sintetis menggunakan Google Cloud CLI atau Cloud Monitoring API, Anda meneruskan nama fungsi ke panggilan API. Oleh karena itu, Anda hanya dapat membuat monitor sintetis yang memantau fungsi Cloud Run yang ada.

  1. Pastikan Anda telah mengaktifkan API yang diperlukan, project Anda berisi akun layanan Compute Engine default, dan akun ini telah diberi peran Editor (roles/editor). Untuk informasi selengkapnya, lihat Sebelum memulai.
  2. Tulis dan deploy fungsi Cloud Run generasi ke-2 Anda.

    Misalnya, untuk men-deploy contoh synthetics-sdk-nodejs di repositori Google Cloud/synthetics-sdk-nodejs, lakukan hal berikut:

    1. Clone repositori dan buka lokasi kode sumber:

      git clone https://github.com/GoogleCloudPlatform/synthetics-sdk-nodejs.git
      cd synthetics-sdk-nodejs/samples/generic-synthetic-nodejs
      
    2. Deploy fungsi Cloud Run menggunakan perintah gcloud functions deploy:

      gcloud functions deploy FUNCTION_NAME \
      --gen2 --region="us-west2" --source="." \
      --entry-point=SyntheticFunction --trigger-http --runtime=nodejs18
      

      Pada perintah gcloud functions deploy, lakukan hal berikut:

      • Pastikan nilai kolom FUNCTION_NAME unik dalam region deployment-nya.

      • Sertakan flag --gen2 dan tetapkan region deployment.

      • Tetapkan kolom --entry-point sebagai berikut:

        • Mocha: SyntheticMochaSuite
        • Bukan Mocha: SyntheticFunction.
      • Tetapkan kolom --runtime ke nodejs18.

      • Sertakan flag --trigger-http.

      • Tetapkan kolom --ingress-settings jika Anda tidak ingin menggunakan setelan default, yang mengizinkan semua traffic.

      Fungsi Cloud Run mem-build, lalu men-deploy fungsi Cloud Run Anda. Hasil perintah Google Cloud CLI menyertakan informasi tentang fungsi, termasuk namanya yang sepenuhnya memenuhi syarat:

      name: projects/PROJECT_ID/locations/REGION/functions/FUNCTION_NAME
      

      Untuk informasi selengkapnya tentang cara men-deploy fungsi, lihat Men-deploy fungsi Cloud Run.

    Untuk mencantumkan fungsi Cloud Run di project Google Cloud Anda, gunakan perintah gcloud functions list:

    gcloud functions list
    

    Respons panggilan ini adalah entri daftar, setiap entri mencantumkan fungsi Cloud Run:

    NAME: function-1
    STATE: ACTIVE
    TRIGGER: HTTP Trigger
    REGION: us-west2
    ENVIRONMENT: 2nd gen
    

    Untuk menemukan nama yang sepenuhnya memenuhi syarat untuk fungsi Cloud Run tertentu, jalankan perintah gcloud monitoring uptime describe.

  3. Untuk membuat monitor sintetis, lakukan hal berikut:

    1. Klik projects.uptimeCheckConfigs.create untuk membuka halaman referensi API untuk metode tersebut.
    2. Klik Coba untuk membuka API Explorer.
    3. Tetapkan kolom berikut, lalu jalankan perintah.

      • Kolom induk: projects/PROJECT_ID.
      • Dalam isi permintaan, tentukan hal berikut:

        • displayName: Tetapkan ke nama tampilan untuk monitor sintetis Anda.
        • syntheticMonitor: Tetapkan ke nama lengkap fungsi Cloud Run Anda.

      Jika berhasil, respons panggilan API akan terlihat mirip dengan berikut ini:

      {
      "name": "projects/myproject/uptimeCheckConfigs/17272586127463315332",
      "displayName": "MyMonitor",
      ...
      "syntheticMonitor": {
       "cloudFunctionV2": {
          "name": "projects/myproject/locations/us-west2/functions/function-1",
          "cloudRunRevision": {
          "type": "cloud_run_revision",
          "labels": {
             "project_id": "myproject",
             "configuration_name": "",
             "location": "us-west2",
             "revision_name": "",
             "service_name": "function-1"
          }
          }
       }
      }
      }
      
  4. Buat kebijakan pemberitahuan.

    Karena kompleksitas konfigurasi kebijakan pemberitahuan, sebaiknya buka halaman Synthetic monitors di konsol Google Cloud, dan gunakan opsi untuk membuat kebijakan pemberitahuan. Dengan pendekatan ini, sebagian besar kolom kebijakan pemberitahuan akan diisi untuk Anda. Untuk membuat kebijakan pemberitahuan menggunakan konsol Google Cloud, klik Create policy dari halaman Synthetic monitors.

    Jika Anda berencana menggunakan Google Cloud CLI atau Cloud Monitoring API, konfigurasikan filter kondisi sebagai berikut:

    "filter": "resource.type = \"cloud_run_revision\" AND
                metric.type = \"monitoring.googleapis.com/uptime_check/check_passed\" AND
                metric.labels.check_id = \"CHECK_ID\"",
    

    Kondisi memantau deret waktu uptime_check/check_passed yang ditulis oleh monitor sintetis Anda. Pastikan untuk mengganti CHECK_ID dengan ID monitor sintetis, dan yang disertakan dalam data respons perintah buat.

    Untuk informasi tentang cara membuat kebijakan pemberitahuan, lihat Membuat kebijakan pemberitahuan menggunakan API.

Terraform

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi penyedia Terraform.

Untuk membuat monitor sintetis dan kebijakan pemberitahuan guna memantau pemeriksaan tersebut, lakukan tindakan berikut:

  1. Pastikan Anda telah mengaktifkan API yang diperlukan, project Anda berisi akun layanan Compute Engine default, dan akun ini telah diberi peran Editor (roles/editor). Untuk informasi selengkapnya, lihat Sebelum memulai.

  2. Edit file konfigurasi Terraform dan tambahkan resource google_storage_bucket, lalu terapkan perubahan Anda.

    Kode berikut menentukan bucket Cloud Storage di lokasi US:

    resource "google_storage_bucket" "gcf_source" {
       name = "gcf-v2-source-9948673986912-us"
       location = "US"
       uniform_bucket_level_access = true
    }
    
  3. Edit file konfigurasi Terraform dan tambahkan resource google_storage_bucket_object, lalu terapkan perubahan Anda.

    Resource menentukan nama objek di bucket Anda, dan lokasi file zip di sistem lokal Anda. Misalnya, saat Anda menerapkan kode berikut, file dengan nama example-function.zip akan ditambahkan ke bucket penyimpanan Anda:

    resource "google_storage_bucket_object" "object" {
       name = "example-function.zip"
       bucket = google_storage_bucket.gcf_source.name
       source = "generic-synthetic-node.js.zip"
    }
    
  4. Edit file konfigurasi Terraform dan tambahkan resource google_cloudfunctions2_function, lalu terapkan perubahan Anda.

    Pastikan resource google_cloudfunctions2_function Anda menentukan runtime Node.js dan titik entri yang digunakan oleh monitor sintetis. Misalnya, saat Anda menerapkan kode berikut, fungsi dengan nama sm-central1 akan di-deploy:

    resource "google_cloudfunctions2_function" "central1" {
       name = "sm-central1"
       location = "us-central1"
    
       build_config {
          runtime = "nodejs20"
          entry_point = "SyntheticFunction"
          source {
                storage_source {
                   bucket = google_storage_bucket.gcf_source.name
                   object = google_storage_bucket_object.object.name
                }
          }
       }
    
       service_config {
          max_instance_count = 1
          available_memory = "256Mi"
          timeout_seconds  = 60
       }
    }
    
  5. Untuk membuat monitor sintetis, edit file konfigurasi Terraform Anda dan tambahkan resource google_monitoring_uptime_check_config, lalu terapkan perubahan Anda.

    Untuk resource ini, tentukan blok synthetic_monitor:

    resource "google_monitoring_uptime_check_config" "synthetic" {
       display_name = "sm-central1"
       timeout = "30s"
    
       synthetic_monitor {
          cloud_function_v2 {
                name = google_cloudfunctions2_function.central1.id
          }
       }
    }
    
  6. Opsional: Buat saluran notifikasi dan kebijakan pemberitahuan.

    Langkah-langkah berikut menggunakan konsol Google Cloud untuk membuat saluran notifikasi dan kebijakan pemberitahuan. Pendekatan ini memastikan bahwa kebijakan pemberitahuan hanya memantau data yang dihasilkan oleh monitor sintetis Anda.

    1. Untuk membuat saluran notifikasi, lakukan tindakan berikut:

      1. Di konsol Google Cloud, buka halaman  Alerting:

        Buka Pemberitahuan

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

      2. Pilih Kelola saluran notifikasi.
      3. Buka jenis saluran yang ingin ditambahkan, klik Tambahkan, lalu selesaikan dialog.
    2. Untuk membuat kebijakan pemberitahuan, lakukan langkah berikut:

      1. Di konsol Google Cloud, buka halaman  Synthetic monitoring:

        Buka Pemantauan sintetis

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

      2. Temukan monitor sintetis Anda, pilih Lainnya, lalu pilih Tambahkan kebijakan pemberitahuan.
      3. Dalam dialog, buka bagian Notifications and name, luaskan Notification Channels, lalu buat pilihan Anda.
      4. Beri nama kebijakan pemberitahuan, lalu klik Create policy.

Harga

Secara umum, metrik sistem Cloud Monitoring gratis, dan metrik dari sistem, agen, atau aplikasi eksternal tidak gratis. Metrik yang dapat ditagih ditagih berdasarkan jumlah byte atau jumlah sampel yang diserap.

Untuk mengetahui informasi selengkapnya tentang harga Cloud Monitoring, lihat dokumen berikut:

Memecahkan masalah monitor sintetis

Bagian ini memberikan informasi yang dapat Anda gunakan untuk membantu memecahkan masalah monitor sintetis.

Pesan error setelah mengaktifkan API

Anda membuka alur pembuatan untuk monitor sintetis dan diminta untuk mengaktifkan minimal satu API. Setelah Anda mengaktifkan API, pesan yang mirip dengan berikut ini akan ditampilkan:

An error occurred during fetching available regions: Cloud Functions API has
not been used in project PROJECT_ID before or it is disabled.

Pesan error merekomendasikan agar Anda memverifikasi bahwa API diaktifkan, lalu menyarankan agar Anda menunggu dan mencoba kembali tindakan tersebut.

Untuk memverifikasi bahwa API sudah diaktifkan, buka halaman API & Layanan untuk project Anda:

Buka API & Layanan

Setelah memverifikasi bahwa API diaktifkan, Anda dapat melanjutkan dengan alur pembuatan. Kondisi ini akan otomatis diselesaikan setelah pengaktifan API diberlakukan melalui backend.

Permintaan HTTP keluar tidak dilacak

Anda mengonfigurasi monitor sintetis untuk mengumpulkan data rekaman aktivitas untuk permintaan HTTP output. Data rekaman aktivitas Anda hanya menampilkan satu span, mirip dengan screenshot berikut:

Cloud Trace hanya menampilkan satu rekaman aktivitas.

Untuk mengatasi situasi ini, pastikan akun layanan Anda telah diberi peran Cloud Trace Agent (roles/cloudtrace.agent). Peran Editor (roles/editor) juga sudah cukup.

Untuk melihat peran yang diberikan ke akun layanan Anda, lakukan hal berikut:

  1. Di konsol Google Cloud, buka halaman IAM:

    Buka IAM

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

  2. Pilih Sertakan pemberian peran yang disediakan Google.
  3. Jika akun layanan yang digunakan oleh monitor sintetis Anda tidak tercantum, atau jika akun layanan tersebut belum diberi peran yang menyertakan izin dalam peran Agen Cloud Trace (roles/cloudtrace.agent), berikan peran ini ke akun layanan Anda.

    Jika Anda tidak tahu nama akun layanan, di menu navigasi, pilih Akun Layanan.

Status dalam proses

Halaman Synthetic monitors mencantumkan monitor sintetis dengan status In progress. Status In progress berarti bahwa monitor sintetis baru saja dibuat dan tidak ada data yang akan ditampilkan, atau fungsi gagal di-deploy.

Untuk menentukan apakah fungsi gagal di-deploy, coba langkah berikut:

  • Pastikan nama fungsi Cloud Run Anda tidak berisi garis bawah. Jika ada garis bawah, hapus garis bawah tersebut dan deploy ulang fungsi Cloud Run.

  • Buka halaman Detail monitor sintetis untuk monitor sintetis.

    Jika Anda melihat pesan berikut, hapus monitor sintetis.

    Cloud Function not found for this Synthetic monitor. Please confirm it exists or delete this monitor.
    

    Pesan error menunjukkan bahwa fungsi telah dihapus sehingga monitor sintetis tidak dapat menjalankan fungsi.

  • Buka halaman fungsi Cloud Run untuk fungsi tersebut. Untuk membuka halaman ini dari halaman Synthetic monitor details, klik Code, lalu klik nama fungsi.

    Jika Anda melihat pesan yang mirip dengan berikut ini, berarti fungsi gagal di-deploy.

    This function has failed to deploy and will not work correctly. Please edit and redeploy
    

    Untuk mengatasi kegagalan ini, tinjau kode fungsi dan perbaiki error yang mencegah fungsi di-build atau di-deploy.

Saat Anda membuat monitor sintetis, mungkin perlu waktu beberapa menit hingga fungsi di-deploy dan dieksekusi.

Status peringatan

Synthetic monitors mencantumkan monitor sintetis dengan status Warning. Status Warning berarti bahwa hasil eksekusi tidak konsisten. Hal ini mungkin menunjukkan masalah desain pada pengujian Anda, atau mungkin menunjukkan bahwa hal yang sedang diuji memiliki perilaku yang tidak konsisten.

Status gagal

Monitor sintetis mencantumkan monitor sintetis dengan status Failing. Untuk mendapatkan informasi selengkapnya tentang alasan kegagalan, lihat histori eksekusi terbaru.

  • Jika pesan error Request failed with status code 429 ditampilkan, target permintaan HTTP menolak perintah. Untuk mengatasi kegagalan ini, Anda harus mengubah target monitor sintetis.

    Endpoint https://www.google.com menolak permintaan yang dibuat oleh monitor sintetis.

  • Jika kegagalan menampilkan waktu eksekusi 0ms, fungsi Cloud Run mungkin kehabisan memori. Untuk mengatasi kegagalan ini, edit fungsi Cloud Run, lalu tingkatkan memori setidaknya menjadi 2 GiB dan tetapkan kolom CPU ke 1.

Penghapusan gagal untuk monitor sintetis

Anda menggunakan Cloud Monitoring API untuk menghapus monitor sintetis, tetapi panggilan API gagal dengan respons yang mirip dengan berikut:

{
  "error": {
    "code": 400,
    "message": "Request contains an invalid argument.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.DebugInfo",
        "detail": "[ORIGINAL ERROR] generic::invalid_argument: Cannot delete check 1228258045726183344. One or more alerting policies is using it.Delete the alerting policy with id projects/myproject/alertPolicies/16594654141392976482 and any other policies using this uptime check and try again."
      }
    ]
  }
}

Untuk mengatasi kegagalan, hapus kebijakan pemberitahuan yang memantau hasil monitor sintetis, lalu hapus monitor sintetis.

Langkah selanjutnya