Memecahkan masalah kebijakan pemberitahuan

Halaman ini menjelaskan alasan beberapa kebijakan pemberitahuan mungkin berperilaku berbeda dari yang diinginkan, dan menawarkan kemungkinan solusi untuk situasi tersebut.

Untuk mengetahui informasi tentang variabel yang dapat memengaruhi kebijakan pemberitahuan, misalnya, berdasarkan pilihan periode pengujian ulang, lihat Perilaku kebijakan pemberitahuan berbasis metrik.

Kebijakan pemakaian disk membuat pemberitahuan yang tidak terduga

Anda telah membuat kebijakan pemberitahuan untuk memantau kapasitas "terpakai" disk di sistem Anda. Kebijakan ini memantau metrik agent.googleapis.com/disk/percent_used. Anda ingin diberi tahu hanya jika pemakaian disk fisik melebihi batas yang Anda tetapkan dalam kondisi. Namun, kebijakan ini membuat pemberitahuan saat penggunaan disk dari setiap disk fisik kurang dari nilai minimum.

Penyebab umum pemberitahuan yang tidak diharapkan untuk kebijakan ini adalah kondisi yang tidak dibatasi untuk memantau disk fisik. Sebagai gantinya, kebijakan ini memantau semua disk, termasuk disk virtual seperti perangkat loopback. Jika disk virtual dibuat sedemikian rupa sehingga pemanfaatannya mencapai 100%, hal ini akan menyebabkan pemberitahuan untuk kebijakan dibuat.

Misalnya, pertimbangkan output berikut dari perintah df Linux, yang menunjukkan kapasitas disk yang tersedia pada sistem file yang terpasang, untuk satu sistem:

$ df
/dev/root     9983232  2337708  7629140   24%  /
devtmpfs      2524080        0  2524080    0%  /dev
tmpfs         2528080        0  2528080    0%  /dev/shm
...
/dev/sda15     106858     3934   102924    4%  /boot/efi
/dev/loop0      56704    56704        0  100%  /snap/core18/1885
/dev/loop1     129536   129536        0  100%  /snap/google-cloud-sdk/150
...

Untuk sistem ini, kebijakan pemberitahuan pemakaian disk harus dikonfigurasi untuk memfilter deret waktu untuk perangkat loopback /dev/loop0 dan /dev/loop1. Misalnya, Anda dapat menambahkan filter device !=~ ^/dev/loop.*, yang mengecualikan semua deret waktu yang label device-nya tidak cocok dengan ekspresi reguler ^/dev/loop.*.

Penyebab umum pemberitahuan anomali

Anda membuat kebijakan pemberitahuan dan kebijakan tersebut tampaknya membuat pemberitahuan terlalu dini atau salah.

Ada berbagai alasan mengapa Anda mungkin menerima notifikasi pemberitahuan yang tampaknya salah:

  • Jika ada kesenjangan dalam data, terutama untuk kebijakan pemberitahuan dengan kondisi ketiadaan metrik atau kondisi nilai minimum “kurang dari”, pemberitahuan dapat dibuat yang tampaknya anomali. Terkadang pemberitahuan tidak menampilkan kesenjangan data, dan terkadang kesenjangan data diperbaiki secara otomatis:

    • Misalnya, dalam diagram, kesenjangan mungkin tidak muncul karena nilai untuk data yang tidak ada diinterpolasi. Meskipun data beberapa menit tidak ada, diagram akan menghubungkan titik-titik yang hilang untuk kontinuitas visual. Kesenjangan dalam data pokok tersebut mungkin cukup bagi kebijakan pemberitahuan untuk membuat pemberitahuan.

    • Poin dalam metrik berbasis log dapat terlambat tiba dan diisi ulang, hingga 10 menit sebelumnya. Perilaku pengisian ulang secara efektif memperbaiki kesenjangan; kesenjangan diisi saat data akhirnya tiba. Oleh karena itu, kesenjangan dalam metrik berbasis log yang tidak dapat dilihat lagi mungkin telah menyebabkan kebijakan pemberitahuan membuat pemberitahuan.

  • Kondisi ketiadaan metrik dan nilai minimum “kurang dari” dievaluasi secara real time, dengan penundaan kueri yang kecil. Status kondisi dapat berubah antara waktu evaluasi dan waktu pemberitahuan yang sesuai terlihat di Monitoring.

  • Kondisi yang dikonfigurasi untuk membuat pemberitahuan pada satu pengukuran dapat menghasilkan pemberitahuan yang tampaknya terlalu dini atau salah. Untuk mencegah situasi ini, pastikan beberapa pengukuran diperlukan sebelum pemberitahuan dibuat dengan menetapkan jendela pengujian ulang dari suatu kondisi menjadi lebih dari dua kali lipat frekuensi sampling metrik.

    Misalnya, jika metrik diambil sampelnya setiap 60 detik, tetapkan periode pengujian ulang ke minimal 3 menit. Jika Anda menetapkan periode pengujian ulang ke nilai terbaru, atau setara dengan 0 detik, maka satu pengukuran dapat menyebabkan pemberitahuan dibuat.

  • Saat kondisi kebijakan pemberitahuan diedit, mungkin perlu waktu beberapa menit agar perubahan diterapkan melalui infrastruktur pemberitahuan. Selama jangka waktu ini, Anda mungkin menerima notifikasi pemberitahuan yang memenuhi kondisi kebijakan pemberitahuan asli.

  • Saat data deret waktu tiba, perlu waktu hingga satu menit agar data tersebut disebarkan ke seluruh infrastruktur pemberitahuan. Selama proses ini, kebijakan pemberitahuan mungkin mengevaluasi kondisi sebagai terpenuhi meskipun data deret waktu belum diterapkan ke diagram deret waktu. Akibatnya, Anda mungkin menerima notifikasi meskipun diagram tidak menunjukkan bahwa kondisi terpenuhi. Untuk mengurangi kemungkinan situasi ini, gunakan periode penyelarasan minimal lima menit.

  • Penggantian nama label App Hub metadata.system_labels.apphub_host_project_id menjadi metadata.system_labels.apphub_application_container dapat menyebabkan beberapa pemberitahuan baru dibuat dan beberapa pemberitahuan terbuka tidak ditutup.

    Anda tidak perlu melakukan tindakan apa pun. Notifikasi akan otomatis ditutup saat data berhenti masuk, setelah durasi penutupan otomatis berakhir. Untuk mengetahui informasi selengkapnya, lihat Data metrik parsial.

Notifikasi tidak ditutup saat data berhenti masuk

Anda mengonfigurasi kebijakan pemberitahuan untuk menutup pemberitahuan saat data berhenti masuk. Dalam beberapa kasus, data berhenti masuk, tetapi pemberitahuan tetap terbuka. Misalnya, jika Anda memantau workload sementara seperti pod Google Kubernetes Engine, tugas atau revisi Cloud Run, atau tugas batch, pemberitahuan dapat tetap terbuka setelah workload selesai dan data metrik berhenti masuk.

Jika resource pokok yang dipantau oleh kebijakan pemberitahuan berisi label metadata.system_labels.state, dan jika kebijakan tersebut tidak ditulis dengan Monitoring Query Language, Monitoring dapat menentukan status resource. Jika status resource diketahui dinonaktifkan, Monitoring tidak akan otomatis menutup pemberitahuan saat data berhenti masuk.

Untuk mengatasi masalah ini, gunakan salah satu pendekatan berikut:

  • Edit kebijakan pemberitahuan dan buat perubahan berikut:

    1. Di konsol Google Cloud , edit kebijakan pemberitahuan.

    2. Di halaman Configure trigger, luaskan Advanced options, dan tetapkan menu Evaluation of missing data ke Missing data points treated as values that don't violate the policy condition. Pilihan ini selaras dengan enum EVALUATION_MISSING_DATA_INACTIVE.

    3. Di halaman Notifications and name, tetapkan menu Alert autoclose duration ke 30 menit.

    Setelah Anda memperbarui kebijakan pemberitahuan, Monitoring akan menutup pemberitahuan saat pengamatan berhenti masuk dan kondisi mengevaluasi data yang hilang, atau saat durasi penutupan otomatis berakhir.

  • Tutup pemberitahuan secara manual. Untuk mengetahui informasi selengkapnya, lihat Tidak dapat menutup pemberitahuan secara manual. Menutup notifikasi secara manual mungkin tersedia, bergantung pada status resource.

Tidak dapat melihat detail pemberitahuan karena error izin

Anda membuka halaman pemberitahuan di konsol Google Cloud dan memilih pemberitahuan untuk dilihat. Anda berharap halaman detail akan terbuka. Namun, halaman detail gagal dibuka dan pesan "Izin ditolak" ditampilkan.

Untuk melihat semua detail pemberitahuan kecuali data metrik, pastikan Anda memiliki peran Identity and Access Management (IAM) Monitoring Cloud Console Incident Viewer (roles/monitoring.cloudConsoleIncidentViewer) dan Stackdriver Accounts Viewer (roles/stackdriver.accounts.viewer).

Untuk melihat semua detail pemberitahuan, termasuk data metrik, dan agar dapat mengonfirmasi atau menutup pemberitahuan, pastikan Anda memiliki peran IAM Monitoring Viewer (roles/monitoring.viewer) dan Monitoring Cloud Console Incident Editor (roles/monitoring.cloudConsoleIncidentEditor).

Peran khusus tidak dapat memberikan izin yang diperlukan untuk melihat detail pemberitahuan.

Pemberitahuan tidak dibuat saat kondisi terpenuhi

Anda telah membuat kebijakan pemberitahuan yang memiliki satu kondisi. Diagram untuk kebijakan pemberitahuan menunjukkan bahwa data yang dipantau melanggar kondisi, tetapi Anda tidak menerima notifikasi dan pemberitahuan tidak dibuat.

Jika salah satu kriteria berikut terpenuhi setelah kondisi kebijakan pemberitahuan terpenuhi, Monitoring tidak akan membuka pemberitahuan.

  • Kebijakan pemberitahuan ditunda.
  • Kebijakan pemberitahuan dinonaktifkan.
  • Kebijakan pemberitahuan telah mencapai jumlah maksimum pemberitahuan yang dapat dibuka secara bersamaan.
  • Status resource yang dipantau oleh kebijakan pemberitahuan diketahui dinonaktifkan. Monitoring dapat menentukan status resource saat resource berisi label metadata.system_labels.state dan saat kebijakan pemberitahuan tidak ditulis dengan Monitoring Query Language.

Daftar detail pemberitahuan salah project

Anda akan menerima notifikasi dan ringkasan kondisi akan mencantumkan projectGoogle Cloud tempat pemberitahuan dibuat, yaitu mencantumkan project pencakupan. Namun, Anda ingin pemberitahuan mencantumkan nama project Google Cloud yang menyimpan deret waktu yang menyebabkan Monitoring membuat pemberitahuan.

Opsi agregasi yang ditentukan dalam kondisi kebijakan pemberitahuan menentukan project Google Cloud yang dirujuk dalam notifikasi:

  • Jika opsi agregasi menghilangkan label yang menyimpan project ID, informasi pemberitahuan akan mencantumkan project pencakupan. Misalnya, jika Anda mengelompokkan data hanya berdasarkan zona, setelah pengelompokan, label yang menyimpan project ID akan dihapus.

  • Jika opsi agregasi mempertahankan label yang menyimpan project ID, notifikasi pemberitahuan akan menyertakan nama project Google Cloud yang menyimpan deret waktu yang menyebabkan pemberitahuan terjadi. Untuk mempertahankan label project ID, sertakan label project_id di kolom pengelompokan, atau jangan kelompokkan deret waktu.

Tidak dapat menutup pemberitahuan secara manual

Anda menerima notifikasi pemberitahuan di sistem Anda. Anda membuka halaman detail notifikasi dan mengklik Tutup notifikasi. Anda memperkirakan pemberitahuan akan ditutup; namun, Anda menerima pesan error:

Unable to close alert with active conditions.

Anda hanya dapat menutup pemberitahuan jika tidak ada pengamatan yang masuk dalam periode pemberitahuan terbaru. Periode pemberitahuan, yang biasanya memiliki nilai default 5 menit, ditentukan sebagai bagian dari kondisi kebijakan pemberitahuan dan dapat dikonfigurasi. Pesan error sebelumnya menunjukkan bahwa data telah diterima dalam periode pemberitahuan.

Error berikut terjadi saat pemberitahuan tidak dapat ditutup karena error internal:

Unable to close alert. Please try again in a few minutes.

Saat melihat pesan error sebelumnya, Anda dapat mencoba kembali operasi penutupan atau membiarkan Monitoring menutup pemberitahuan secara otomatis.

Untuk mengetahui informasi selengkapnya, lihat Mengelola pemberitahuan.

Kebijakan multi-kondisi membuat beberapa notifikasi

Anda telah membuat kebijakan pemberitahuan yang berisi beberapa kondisi, dan Anda menggabungkan kondisi tersebut dengan AND logis. Anda akan mendapatkan satu notifikasi dan membuat satu pemberitahuan saat semua kondisi terpenuhi. Namun, Anda menerima beberapa notifikasi dan melihat bahwa beberapa pemberitahuan dibuat.

Monitoring mengirimkan notifikasi dan membuat pemberitahuan untuk setiap deret waktu yang menyebabkan kondisi terpenuhi. Akibatnya, jika memiliki kebijakan pemberitahuan dengan beberapa kondisi, Anda berpotensi menerima satu notifikasi dan pemberitahuan untuk setiap deret waktu yang menyebabkan kondisi gabungan terpenuhi.

Misalnya, Anda memiliki kebijakan pemberitahuan dengan dua kondisi, di mana setiap kondisi memantau 3 deret waktu. Kebijakan ini hanya mengirimkan notifikasi jika kedua kondisi terpenuhi. Jika kondisi kebijakan Anda terpenuhi, Anda dapat menerima antara 2 (satu deret waktu terpenuhi di setiap kondisi) dan 6 (semua deret waktu terpenuhi di setiap kondisi) notifikasi dan pemberitahuan.

Anda tidak dapat mengonfigurasi Monitoring untuk membuat satu pemberitahuan dan mengirim satu notifikasi.

Untuk mengetahui informasi selengkapnya, lihat Kapan Monitoring mengirimkan notifikasi dan membuat pemberitahuan.

Variabel untuk label metrik memiliki nilai null

Anda membuat kebijakan pemberitahuan dan menambahkan variabel untuk label metrik ke bagian dokumentasi. Anda berharap notifikasi akan menampilkan nilai label yang dirujuk oleh variabel. Namun, nilai variabel ditetapkan ke null.

Untuk mengatasi situasi ini, coba langkah-langkah berikut:

  • Pastikan setelan agregasi untuk kebijakan pemberitahuan mempertahankan label yang ingin Anda tampilkan.

    Misalnya, asumsikan Anda membuat kebijakan pemberitahuan yang memantau byte disk yang ditulis oleh instance VM. Anda ingin dokumentasi mencantumkan perangkat yang menyebabkan notifikasi, jadi Anda menambahkan hal berikut ke kolom dokumentasi: device: ${metric.label.device}.

    Anda juga harus memverifikasi bahwa setelan agregasi mempertahankan nilai label device. Anda dapat mempertahankan label ini dengan menetapkan fungsi agregasi ke none atau dengan memverifikasi bahwa pilihan pengelompokan menyertakan device.

  • Verifikasi sintaksis dan penerapan variabel. Untuk informasi sintaksis, lihat Memberikan anotasi pada notifikasi dengan dokumentasi yang ditentukan pengguna.

    Misalnya, variabel log.extracted_label.KEY hanya didukung untuk kebijakan pemberitahuan berbasis log. Variabel ini selalu dirender sebagai null saat kebijakan pemberitahuan memantau metrik, bahkan metrik berbasis log.

Tidak ada data baru setelah perubahan pada definisi metrik

Anda mengubah definisi metrik yang ditentukan pengguna, misalnya, dengan mengubah filter yang Anda gunakan dalam metrik berbasis log, dan kebijakan pemberitahuan tidak mencerminkan perubahan yang Anda buat pada definisi metrik.

Untuk mengatasi masalah ini, paksa kebijakan pemberitahuan untuk diupdate dengan mengedit nama tampilan kebijakan.

Pembuatan kebijakan pemberitahuan gagal di API karena metrik tidak ada

Anda baru saja membuat metrik, lalu mereferensikan metrik tersebut saat mencoba membuat kebijakan pemberitahuan di Cloud Monitoring API. Namun, perintah API gagal dan menampilkan error berikut:

Error 404: Cannot find metric(s) that match type = "METRIC_NAME".
If a metric was created recently, it could take up to 10 minutes to become
available. Please try again soon.

Untuk mengatasi masalah ini, tunggu setidaknya sepuluh menit, lalu kirim ulang permintaan API.

Diagram kebijakan pemberitahuan tidak menampilkan pelanggaran nilai minimum

Anda menerima notifikasi bahwa pemberitahuan telah dibuka untuk kebijakan pemberitahuan Anda. Namun, saat Anda membuka halaman detail untuk kebijakan, diagram tidak menunjukkan bahwa nilai minimum telah dilanggar.

Untuk mengatasi situasi ini, coba perpendek rentang waktu untuk diagram. Anda dapat mempersingkat rentang waktu menggunakan pemilih rentang waktu di toolbar, atau dengan menandai rentang waktu pada diagram menggunakan pointer.

Diagram memiliki resolusi terbatas dan mungkin tidak menampilkan setiap pengukuran untuk beberapa rentang waktu.