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 informasi tentang variabel yang dapat memengaruhi kebijakan pemberitahuan, misalnya, berdasarkan pilihan periode pengujian ulang, lihat Perilaku kebijakan pemberitahuan berbasis metrik.

Kebijakan penggunaan disk menyebabkan insiden yang tidak terduga

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

Penyebab umum insiden yang tidak terduga untuk kebijakan ini adalah kondisinya tidak terbatas pada pemantauan disk fisik. Sebagai gantinya, kebijakan ini memantau semua disk, termasuk disk virtual seperti perangkat loopback. Jika disk virtual dibuat sedemikian rupa sehingga penggunaannya adalah 100%, hal itu akan menyebabkan insiden untuk kebijakan yang dibuat.

Misalnya, pertimbangkan output perintah df Linux berikut, yang menunjukkan ruang disk yang tersedia di 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 penggunaan 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 insiden anomali

Anda membuat kebijakan pemberitahuan dan kebijakan tersebut tampaknya membuat insiden terlalu awal atau salah.

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

  • Jika ada kesenjangan data, terutama untuk kebijakan pemberitahuan dengan kondisi batas metrik tidak ada atau "kurang dari", insiden yang tampaknya bersifat anomali dapat dibuat. Terkadang insiden tidak menampilkan kesenjangan data, dan terkadang kesenjangan data otomatis diperbaiki:

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

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

  • Kondisi ambang batas ketiadaan metrik dan "kurang dari" dievaluasi secara real time, dengan penundaan kueri kecil. Status kondisi dapat berubah antara waktu dievaluasi dan waktu insiden yang sesuai terlihat di Monitoring.

  • Kondisi yang dikonfigurasi untuk membuat insiden pada satu ukuran dapat mengakibatkan insiden yang tampak prematur atau salah. Untuk mencegah situasi ini, pastikan beberapa pengukuran diperlukan sebelum insiden dibuat dengan menetapkan periode pengujian ulang kondisi menjadi lebih dari dua kali lipat frekuensi sampling metrik.

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

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

  • Saat data deret waktu tiba, mungkin perlu waktu hingga satu menit agar data tersebut didistribusikan ke seluruh infrastruktur pemberitahuan. Selama proses ini, kebijakan pemberitahuan dapat mengevaluasi kondisi sebagai terpenuhi meskipun data deret waktu belum disebarkan 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.

Insiden tidak ditutup saat data berhenti masuk

Anda mengikuti panduan di Data metrik parsial dan mengonfigurasi kebijakan pemberitahuan untuk menutup insiden saat data berhenti masuk. Dalam beberapa kasus, data berhenti masuk, tetapi insiden yang terbuka tidak otomatis ditutup.

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 insiden saat data berhenti masuk. Namun, Anda dapat menutup insiden ini secara manual.

Tidak dapat melihat detail insiden karena error izin

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

Untuk melihat semua detail insiden 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 insiden, termasuk data metrik, dan agar dapat mengonfirmasi atau menutup insiden, pastikan Anda memiliki peran IAM Monitoring Viewer (roles/monitoring.viewer) dan Monitoring Cloud Console Incident Editor (roles/monitoring.cloudConsoleIncidentEditor).

Peran kustom tidak dapat memberikan izin yang diperlukan untuk melihat detail insiden.

Insiden tidak dibuat saat kondisi terpenuhi

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

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

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

Detail insiden mencantumkan project yang salah

Anda akan menerima notifikasi dan ringkasan kondisi mencantumkan project Google Cloud tempat insiden dibuat, yaitu mencantumkan project cakupan. Namun, Anda mengharapkan insiden mencantumkan nama project Google Cloud yang menyimpan deret waktu yang menyebabkan Monitoring membuat insiden.

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

  • Jika opsi agregasi menghapus label yang menyimpan project ID, informasi insiden akan mencantumkan project cakupan. 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 insiden akan menyertakan nama project Google Cloud yang menyimpan deret waktu yang menyebabkan insiden terjadi. Untuk mempertahankan label project ID, sertakan label project_id di kolom pengelompokan, atau jangan kelompokkan deret waktu.

Tidak dapat menutup insiden secara manual

Anda menerima notifikasi tentang insiden di sistem Anda. Anda membuka halaman detail insiden dan mengklik Tutup insiden. Anda berharap insiden tersebut ditutup, tetapi Anda menerima pesan error:

Unable to close incident with active conditions.

Anda hanya dapat menutup insiden jika tidak ada pengamatan yang diterima 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 insiden tidak dapat ditutup karena error internal:

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

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

Untuk informasi selengkapnya, lihat Mengelola insiden.

Kebijakan multi-kondisi membuat beberapa notifikasi

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

Pemantauan mengirim notifikasi dan membuat insiden untuk setiap deret waktu yang menyebabkan kondisi terpenuhi. Akibatnya, saat memiliki kebijakan pemberitahuan dengan beberapa kondisi, Anda berpotensi menerima satu notifikasi dan insiden untuk setiap deret waktu yang menyebabkan kondisi gabungan terpenuhi.

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

Anda tidak dapat mengonfigurasi Pemantauan untuk membuat satu insiden dan mengirim satu notifikasi.

Untuk informasi selengkapnya, lihat Notifikasi per insiden.

Variabel untuk label metrik bernilai null

Anda membuat kebijakan pemberitahuan dan menambahkan variabel untuk label metrik ke bagian dokumentasi. Anda berharap notifikasi akan menampilkan nilai variabel; tetapi, nilai ditetapkan ke null.

Untuk mengatasi situasi ini, coba langkah berikut:

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

    Misalnya, 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 memastikan bahwa setelan agregasi mempertahankan nilai label device. Anda dapat mempertahankan label ini dengan menetapkan fungsi agregasi ke none atau dengan memastikan bahwa pilihan pengelompokan menyertakan device.

  • Verifikasi sintaksis dan penerapan variabel. Untuk informasi sintaksis, lihat Memberikan anotasi pada notifikasi menggunakan 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 digunakan dalam metrik berbasis log, dan kebijakan pemberitahuan tidak mencerminkan perubahan yang Anda buat pada definisi metrik.

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

Pembuatan kebijakan pemberitahuan gagal di API karena metrik tidak ada

Anda baru-baru ini 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.