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. Monitor sintetis akan mengeksekusi skrip tersebut dan mencatat hasil pengujian serta data tambahan seperti latensi. Agar menerima notifikasi saat pengujian gagal, Anda dapat mengonfigurasi kebijakan pemberitahuan untuk memantau hasil pengujian.

Tentang monitor sintetis

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

Untuk membuat Cloud Function, Anda dapat menggunakan editor inline 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 Cloud Function secara berkala. Saat Anda menentukan region tempat Cloud Function berada, perintah yang memicu eksekusi dapat berasal dari region mana pun yang didukung oleh server pemeriksaan waktu beroperasi. Untuk mendapatkan informasi lebih lanjut, lihat Mencantumkan alamat IP server cek uptime.

Anda dapat membuat kebijakan pemberitahuan agar Anda diberi tahu saat ada kegagalan uji:

  • 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 atau lebih kegagalan pengujian berturut-turut.

  • 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 Cloud Function dijalankan.

Pertimbangan frekuensi eksekusi

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

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

Kode contoh Cloud Function

Untuk template dan contoh, lihat Contoh untuk monitor sintetis. Anda dapat menggunakan contoh ini sebagai titik awal untuk Cloud Function Anda. Jika Anda adalah developer berpengalaman, pertimbangkan menggunakan Gemini untuk membuat kode bagi monitor sintetis sehingga mengurangi waktu pengembangan Anda. Menggunakan Gemini untuk membuat kode ada di Pratinjau Publik.

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

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

Pembatasan Cloud Function

  • Nama Cloud Function Anda tidak boleh berisi garis bawah.

  • Anda dapat mengumpulkan data log dan rekaman aktivitas untuk permintaan HTTP keluar hanya jika menggunakan template umum.

  • Setelan transfer data masuk Cloud Function Anda harus ditetapkan untuk mengizinkan semua traffic. Setelan ini memastikan bahwa fase pertama validasi yang dilakukan oleh Cloud Functions, yang dilakukan di tingkat jaringan, selalu lulus. Fase kedua validasi menentukan apakah pemanggil telah diberi izin untuk menjalankan Cloud Function. Otorisasi bergantung pada peran Identity and Access Management (IAM) pemanggil. Secara default, Cloud Monitoring diberi izin untuk menjalankan Cloud Function Anda. Untuk mengetahui informasi cara melihat atau mengubah setelan transfer data masuk, lihat Setelan masuk.

  • 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 mengetahui informasi tentang fungsi HTTP, lihat Menulis fungsi HTTP.

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

  • Lingkungan runtime dibatasi untuk Node.js. Untuk mengetahui informasinya, 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 mengetahui informasi tentang cara melihat hasil eksekusi, lihat Menjelajahi hasil monitor sintetis.

Histori eksekusi

Histori hasil eksekusi dikumpulkan untuk setiap monitor sintetis. 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 direkam. Data latensi ditulis sebagai deret waktu uptime_check/request_latency untuk resource Cloud Run tempat Cloud Function dijalankan. Diagram data ini disediakan di halaman Detail monitor sintetis.

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

  • Secara opsional, trace dan log untuk permintaan HTTP keluar. Untuk mengetahui informasi tentang cara mengumpulkan data ini, lihat Meminta latensi.

Metrik dan log Cloud Function

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

Latensi permintaan

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

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

Sebelum memulai

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

    Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.

    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, dan 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 [email protected].

    Pada panel navigasi konsol Google Cloud, pilih IAM & Admin, lalu pilih Service Accounts:

    Buka Akun Layanan

    Jika akun layanan Compute Engine default tidak ada, klik Create service account dan selesaikan dialognya.

  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. Pada panel navigasi Konsol Google Cloud, pilih IAM:

      Buka IAM

    2. Pilih Sertakan pemberian peran yang disediakan Google.
    3. Jika akun layanan yang digunakan oleh monitor sintetis tidak tercantum, atau jika belum diberi peran yang mencakup 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 serta Membuat dan mengelola saluran notifikasi dengan API.

Membuat monitor sintetis

Konsol

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

  1. Pastikan Anda telah mengaktifkan API yang diperlukan, dan 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 panel navigasi konsol Google Cloud, pilih Monitoring, lalu pilih  Synthetic Monitoring:

    Buka Pemantauan sintetis

  3. Pilih Create Synthetic Monitor.
  4. Pilih template untuk Cloud Function Anda:

    • Monitor sintetis kustom: Gunakan template ini jika Anda ingin mengumpulkan data log atau data trace untuk permintaan HTTP keluar.

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

    • Pemeriksa link rusak: Gunakan template ini untuk menguji URI dan jumlah link yang dapat dikonfigurasi yang ada di URI tersebut. Untuk mengetahui informasi tentang kolom 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 Cloud Function, lakukan hal berikut:

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

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

      • Di tab Connections, pastikan Allow all traffic dipilih.

      • Tinjau setelan default dan perbarui jika perlu.

      • Di kolom Runtime service account, pilih akun layanan.

      1. Edit kode yang dihasilkan, atau tulis atau upload kode untuk Cloud Function Anda:

        • Untuk mengedit kode yang dihasilkan, masukkan kode Anda sendiri, atau muat fungsi contoh default, lalu pilih Inline Editor. 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 belum memiliki bucket Cloud Storage yang sesuai, buatlah bucket Cloud Storage.

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

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

      2. Klik Terapkan fungsi.

  9. Konfigurasikan kebijakan pemberitahuan:

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

    2. Tambahkan saluran notifikasi.

  10. Klik Create.

    Cloud Function yang Anda tentukan telah dibuat dan di-deploy sebagai generasi ke-2, dan monitor sintetis dibuat.

gcloud

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

  1. Pastikan Anda telah mengaktifkan API yang diperlukan, dan 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 Cloud Function generasi ke-2.

    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 Cloud Function menggunakan perintah gcloud functions deploy:

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

      Dalam perintah gcloud functions deploy, lakukan hal berikut:

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

      • Sertakan flag --gen2 dan tetapkan region deployment.

      • Tetapkan kolom --entry-point sebagai berikut:

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

      • Menyertakan flag --trigger-http.

      • Kolom --ingress-settings harus dibiarkan tidak ditentukan atau ditetapkan ke all.

      Cloud Functions membangun lalu men-deploy Cloud Function Anda. Hasil perintah Google Cloud CLI mencakup informasi tentang fungsi, termasuk nama yang sepenuhnya memenuhi syarat:

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

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

    Untuk menampilkan daftar Cloud Functions di project Google Cloud, gunakan perintah gcloud functions list:

    gcloud functions list
    

    Respons panggilan ini adalah entri daftar, setiap entri mencantumkan Cloud Function:

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

    Agar dapat menemukan nama yang sepenuhnya memenuhi syarat untuk Cloud Function 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 Anda menjalankan perintah sebelumnya, lakukan hal berikut:

    • Ganti DISPLAY_NAME dengan nama monitor sintetis Anda.
    • Ganti TARGET dengan nama Cloud Function Anda yang sepenuhnya memenuhi syarat.
  4. Buat kebijakan pemberitahuan.

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

    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 ini memantau seri 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 create.

    Untuk mengetahui 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 akan meneruskan nama fungsi ke panggilan API. Oleh karena itu, Anda hanya dapat membuat monitor sintetis yang memantau Cloud Function yang ada.

  1. Pastikan Anda telah mengaktifkan API yang diperlukan, dan 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 Cloud Function generasi ke-2.

    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 Cloud Function menggunakan perintah gcloud functions deploy:

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

      Dalam perintah gcloud functions deploy, lakukan hal berikut:

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

      • Sertakan flag --gen2 dan tetapkan region deployment.

      • Tetapkan kolom --entry-point sebagai berikut:

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

      • Menyertakan flag --trigger-http.

      • Kolom --ingress-settings harus dibiarkan tidak ditentukan atau ditetapkan ke all.

      Cloud Functions membangun lalu men-deploy Cloud Function Anda. Hasil perintah Google Cloud CLI mencakup informasi tentang fungsi, termasuk nama yang sepenuhnya memenuhi syarat:

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

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

    Untuk menampilkan daftar Cloud Functions di project Google Cloud, gunakan perintah gcloud functions list:

    gcloud functions list
    

    Respons panggilan ini adalah entri daftar, setiap entri mencantumkan Cloud Function:

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

    Agar dapat menemukan nama yang sepenuhnya memenuhi syarat untuk Cloud Function 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 Try it untuk membuka APIs Explorer.
    3. Tetapkan kolom berikut, lalu jalankan perintah.

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

        • displayName: Menyetel ke nama tampilan monitor sintetis Anda.
        • syntheticMonitor: Tetapkan ke nama Cloud Function Anda yang sepenuhnya memenuhi syarat.

      Jika berhasil, respons panggilan API serupa 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 Google Cloud Console, dan gunakan opsi untuk membuat kebijakan pemberitahuan. Dengan pendekatan ini, sebagian besar kolom kebijakan pemberitahuan diisi untuk Anda. Untuk membuat kebijakan pemberitahuan menggunakan Konsol Google Cloud, klik Create policy dari halaman Synthetic monitor.

    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 ini memantau seri 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 create.

    Untuk mengetahui 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 untuk memantau pemeriksaan tersebut, lakukan langkah berikut:

  1. Pastikan Anda telah mengaktifkan API yang diperlukan, dan 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 ini 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 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 hal berikut:

      1. Di panel navigasi konsol Google Cloud, pilih Monitoring, lalu pilih  Alerting:

        Buka Alerting

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

      1. Di panel navigasi konsol Google Cloud, pilih Monitoring, lalu pilih  Synthetic Monitoring:

        Buka Pemantauan sintetis

      2. Temukan monitor sintetis Anda, pilih Lainnya, lalu pilih Tambahkan kebijakan pemberitahuan.
      3. Pada dialog yang muncul, buka bagian Notifikasi dan nama, luaskan Saluran Notifikasi, lalu tentukan pilihan Anda.
      4. Beri nama kebijakan pemberitahuan, lalu klik Create policy.

Harga

Secara umum, metrik sistem Cloud Monitoring gratis, sedangkan metrik dari sistem, agen, atau aplikasi eksternal tidak. 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 digunakan untuk membantu Anda memecahkan masalah monitor sintetis.

Pesan error setelah mengaktifkan API

Anda membuka alur pembuatan untuk monitor sintetis dan diminta untuk mengaktifkan setidaknya satu API. Setelah Anda mengaktifkan API, pesan yang mirip dengan yang berikut 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 sudah aktif, lalu menyarankan agar Anda menunggu dan mencoba lagi tindakan tersebut.

Untuk memastikan API sudah diaktifkan, buka halaman APIs & Services untuk project Anda:

Buka API & Layanan

Setelah memastikan API sudah diaktifkan, Anda dapat melanjutkan alur pembuatan. Kondisi ini otomatis di-resolve setelah pengaktifan API diterapkan melalui backend.

Permintaan HTTP keluar tidak dilacak

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

Cloud Trace hanya menampilkan satu trace.

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

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

  1. Pada panel navigasi Konsol Google Cloud, pilih IAM:

    Buka IAM

  2. Pilih Sertakan pemberian peran yang disediakan Google.
  3. Jika akun layanan yang digunakan oleh monitor sintetis tidak tercantum, atau jika 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, pilih Service Accounts di menu navigasi.

Status dalam proses

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

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

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

  • 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 Cloud Functions untuk fungsi tersebut. Untuk membuka halaman ini dari halaman Detail monitor sintetis, klik Code, lalu klik nama fungsi.

    Jika Anda melihat pesan yang mirip dengan pesan berikut, 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 dijalankan.

Status peringatan

Monitor sintetis mencantumkan monitor sintetis dengan status Warning. Status Warning berarti hasil eksekusi tidak konsisten. Hal ini mungkin menunjukkan masalah desain pada pengujian Anda, atau mungkin menunjukkan bahwa apa 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 akan menolak perintah tersebut. Untuk mengatasi kegagalan ini, Anda harus mengubah target monitor sintetis.

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

Penghapusan gagal untuk monitor sintetis

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

{
  "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