Memecahkan masalah kebijakan pemberitahuan

Halaman ini menjelaskan alasan beberapa kebijakan pemberitahuan mungkin berperilaku berbeda dari yang dimaksudkan, 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 penggunaan disk menyebabkan insiden yang tidak terduga

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

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

Misalnya, pertimbangkan output perintah df Linux berikut, yang menunjukkan ruang disk yang tersedia di sistem file yang di-mount, 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 terlalu dini atau salah membuat insiden.

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

  • Jika ada kesenjangan dalam data, terutama untuk kebijakan pemberitahuan dengan kondisi batas “kurang dari” atau tidak adanya metrik, maka insiden dapat dibuat yang tampaknya tidak normal. Terkadang insiden tidak menampilkan kesenjangan data, dan terkadang kesenjangan data diperbaiki secara otomatis:

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

    • Poin dalam metrik berbasis log dapat terlambat 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 lagi dilihat mungkin telah menyebabkan kebijakan pemberitahuan membuat insiden.

  • Kondisi tidak adanya metrik dan kondisi nilai minimum dievaluasi secara real time, dengan sedikit penundaan kueri. Status kondisi dapat berubah antara waktu evaluasi dan waktu insiden yang sesuai terlihat di Monitoring.

  • Kondisi yang dikonfigurasi untuk membuat insiden pada satu pengukuran dapat menghasilkan insiden yang tampaknya 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 rasio pengambilan sampel metrik.

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

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

  • Saat data deret waktu tiba, mungkin perlu waktu hingga satu menit agar data tersebut berpropagasi melalui seluruh infrastruktur pemberitahuan. Selama proses ini, kebijakan pemberitahuan mungkin 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.

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

    Tidak ada tindakan yang perlu dilakukan. Pemberitahuan akan ditutup secara otomatis saat data berhenti diterima, setelah durasi tutup otomatis berakhir. Untuk mengetahui informasi selengkapnya, lihat Data metrik parsial.

Insiden tidak ditutup saat data berhenti masuk

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

Jika resource pokok yang dipantau oleh kebijakan pemberitahuan berisi label metadata.system_labels.state, dan jika kebijakan tersebut tidak ditulis dengan Bahasa Kueri Monitoring, maka Monitoring dapat menentukan status resource. Jika status resource diketahui dinonaktifkan, maka Monitoring tidak akan otomatis menutup insiden saat data berhenti diterima. 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 untuk dilihat. Anda berharap halaman detail terbuka. Namun, halaman detail gagal dibuka dan pesan "Izin ditolak" ditampilkan.

Untuk melihat semua detail insiden kecuali data metrik, pastikan Anda memiliki peran Identity and Access Management (IAM) sebagai 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 terpenuhi setelah kondisi kebijakan pemberitahuan terpenuhi, Monitoring tidak akan membuka insiden.

  • Kebijakan pemberitahuan ditunda.
  • Kebijakan pemberitahuan dinonaktifkan.
  • Kebijakan pemberitahuan telah mencapai jumlah maksimum insiden 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 insiden menampilkan project yang salah

Anda akan menerima notifikasi dan ringkasan kondisi mencantumkan Google Cloud project 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 yang dirujuk dalam notifikasi: Google Cloud

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

  • Jika opsi agregasi mempertahankan label yang menyimpan ID project, 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 akan membuka halaman detail insiden dan mengklik Tutup insiden. Anda berharap insiden ditutup; namun, Anda menerima pesan error:

Unable to close incident with active conditions.

Anda hanya dapat menutup insiden 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 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 lagi operasi penutupan atau membiarkan Monitoring menutup insiden secara otomatis.

Untuk mengetahui 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 satu insiden dibuat saat semua kondisi terpenuhi. Namun, Anda menerima beberapa notifikasi dan melihat bahwa beberapa insiden dibuat.

Monitoring mengirimkan notifikasi dan membuat insiden untuk setiap deret waktu yang menyebabkan kondisi terpenuhi. Akibatnya, saat Anda 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 mengirimkan notifikasi hanya 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 insiden.

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

Untuk mengetahui informasi selengkapnya, lihat Notifikasi per insiden.

Variabel untuk label metrik adalah null

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

Untuk mengatasi situasi ini, coba langkah-langkah berikut:

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

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

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

  • Verifikasi sintaksis dan penerapan variabel. Untuk mengetahui 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 lakukan pada definisi metrik.

Untuk mengatasi masalah ini, paksa kebijakan pemberitahuan diperbarui 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 menunjukkan pelanggaran ambang batas

Anda menerima notifikasi bahwa insiden dibuka untuk kebijakan pemberitahuan Anda. Namun, saat Anda membuka halaman detail kebijakan, diagram tidak menunjukkan bahwa batas tersebut dilanggar.

Untuk mengatasi situasi ini, coba persingkat rentang waktu untuk diagram. Anda dapat memperpendek rentang waktu menggunakan pemilih rentang waktu di toolbar, atau dengan menandai rentang waktu pada diagram dengan kursor.

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