Dokumen ini menjelaskan cara mengelola notifikasi dan insiden dengan menambahkan label buatan pengguna ke kebijakan pemberitahuan. Karena label yang ditentukan pengguna disertakan dalam notifikasi, jika Anda menambahkan label yang menunjukkan tingkat keparahan insiden, notifikasi tersebut akan berisi informasi yang dapat membantu Anda memprioritaskan pemberitahuan untuk diselidiki.
Tentang label
Label adalah key-value pair yang terkait dengan deret waktu, kebijakan pemberitahuan, dan insiden. Ada label metrik, label resource, dan label buatan pengguna. Label metrik dan resource berisi informasi spesifik tentang metrik yang dikumpulkan atau resource yang digunakan untuk menulis metrik. Sebaliknya, label yang ditentukan pengguna adalah label yang Anda buat dan merekam informasi khusus untuk kebutuhan Anda.
Saat data deret waktu ditulis, label dilampirkan ke data untuk mencatat informasi tentang data tersebut. Misalnya, label pada deret waktu dapat mengidentifikasi virtual machine (VM), zona, project Google Cloud, dan jenis perangkat.
Anda dapat menambahkan label pengguna ke kebijakan pemberitahuan dan insiden:
Label pada kebijakan pemberitahuan memiliki nilai statis. Anda dapat menambahkan label ini ke kebijakan pemberitahuan saat menggunakan Konsol Google Cloud atau Cloud Monitoring API. Untuk mengetahui informasi selengkapnya, lihat dokumen berikut:
Kunci label harus diawali dengan huruf kecil. Kunci label dan nilai label hanya boleh berisi huruf kecil, angka, garis bawah, dan tanda hubung.
Label pada insiden dapat ditetapkan nilainya secara dinamis. Artinya, nilai data deret waktu dapat menentukan nilai label. Sebagai contoh, lihat Membuat tingkat keparahan dinamis menggunakan Bahasa Kueri Monitoring (MQL).
Anda dapat menentukan label ini saat menentukan kondisi kebijakan pemberitahuan dengan MQL.
Melihat label di notifikasi
Anda dapat melihat label kebijakan pemberitahuan atau insiden di halaman detail insiden, halaman detail kebijakan pemberitahuan, dan di beberapa notifikasi:
Dalam notifikasi email, label yang Anda tambahkan ke kebijakan tercantum di bagian Label kebijakan, sedangkan label yang Anda tambahkan ke insiden dicantumkan di bagian Label metrik.
Di notifikasi PagerDuty, Webhook, dan Pub/Sub, label yang Anda tambahkan ke insiden atau kebijakan pemberitahuan disertakan dalam data JSON. Label kebijakan pemberitahuan tercantum di kolom
policy_user_labels
dalam struktur JSON:"policy_user_labels": { "severity": "critical", }
Label insiden disertakan di kolom
metric
pada struktur JSON:"metric": { "type" : "compute.googleapis.com/instance/cpu/utilization" "displayName": "CPU Utilization", "labels": { "instance_name": "some_instance_name", "severity": "critical" }, }
Seperti yang ditunjukkan sebelumnya, kolom
metric
mencantumkan jenis metrik, nama tampilan untuk metrik, label metrik, dan label yang ditentukan pengguna yang ditambahkan ke insiden.
Contoh: membuat tingkat keparahan dinamis menggunakan label dan MQL
Anda dapat menggunakan MQL untuk mengonfigurasi label sehingga nilainya berubah secara dinamis berdasarkan data deret waktu. Misalnya, Anda ingin insiden memiliki label Criticality
yang nilainya berubah, bergantung pada nilai metrik penggunaan CPU yang dipantau:
fetch gce_instance
| metric 'compute.googleapis.com/instance/cpu/utilization'
| group_by sliding(5m), [value_utilization_mean: mean(value.utilization)]
| map
add[
Criticality:
if(val() >= 90 '%', 'CRITICAL',
if(val() >= 80 '%', 'WARNING',
if(val() >= 70 '%', 'INFO', 'GOOD')))
]
| condition val() >= 70 '%'
Gambar berikut mengilustrasikan cara kebijakan pemberitahuan yang menggunakan kueri MQL memproses data deret waktu yang dipantau:
Pengendali kebijakan memproses data penggunaan CPU dan menghasilkan deret waktu yang menunjukkan kapan kondisi tersebut dipicu. Pada contoh sebelumnya, kondisi ini dipicu saat pemakaian CPU minimal 70%. Untuk setiap deret waktu input, pengendali kebijakan dapat membuat salah satu dari empat deret waktu:
Nama deret waktu output | Kondisi dipicu | Deskripsi |
---|---|---|
"BAGUS" | Tidak | Deret waktu ini memiliki label yang sama dengan deret waktu input. dan tidak memiliki label tingkat keparahan. |
"KRITIS" | Ya | Pemakaian CPU minimal 90%. Deret waktu output memiliki label yang sama dengan deret waktu "GOOD" plus label tingkat keparahan dengan nilai "CRITITY". |
"PERINGATAN" | Ya | Pemakaian CPU minimal 80% tetapi kurang dari 90%. Deret waktu output memiliki label yang sama dengan deret waktu "GOOD" plus label tingkat keparahan dengan nilai "WARNING". |
"INFO" | Ya | Pemakaian CPU minimal 70% tetapi kurang dari 80%. Deret waktu output memiliki label yang sama dengan deret waktu "GOOD" plus label tingkat keparahan dengan nilai "INFO". |
Data deret waktu yang dihasilkan oleh pengendali kebijakan adalah input ke pengelola insiden, yang menentukan kapan insiden dibuat dan ditutup.
Untuk menentukan kapan harus menutup insiden, pengelola insiden menggunakan nilai kolom duration
, evaluationMissingData
,
dan autoClose
.
Praktik terbaik
Untuk memastikan bahwa maksimal satu insiden terbuka pada satu waktu ketika Anda membuat label yang nilainya ditetapkan secara dinamis, lakukan hal berikut:
Pada objek
MetricThreshold
, ganti nilai default untuk kolom berikut:- Kolom
duration
: Tetapkan ke nilai bukan nol. - Kolom
evaluationMissingData
: Tetapkan agar insiden ditutup saat data berhenti tiba. Saat Anda menggunakan Cloud Monitoring API, tetapkan kolom ini keEVALUATION_MISSING_DATA_INACTIVE
. Saat Anda menggunakan Konsol Google Cloud, tetapkan kolom ke "Titik data tidak ada diperlakukan sebagai nilai yang tidak melanggar kondisi kebijakan".
- Kolom
Pada objek
AlertStrategy
, tetapkan kolomautoClose
ke nilai minimumnya 30 menit. Saat Anda menggunakan Cloud Monitoring API, tetapkan kolom ini ke30m
.
Untuk informasi selengkapnya, lihat Data metrik parsial.
Alur insiden
Misalkan pengukuran pemakaian CPU kurang dari 70% saat kebijakan pemberitahuan dibuat. Urutan berikut mengilustrasikan cara insiden dibuka dan ditutup:
Karena pengukuran pemakaian CPU kurang dari 70%, pengendali kebijakan menghasilkan deret waktu "GOOD" dan tidak ada insiden yang dibuka.
Selanjutnya, asumsikan penggunaan CPU naik hingga 93%. Pengendali kebijakan berhenti menghasilkan data deret waktu "GOOD" dan mulai menghasilkan data untuk deret waktu "Penting".
Manajer insiden melihat deret waktu baru yang memicu kondisi, deret waktu "KRITIS", dan menciptakan insiden. Notifikasi tersebut menyertakan label tingkat keparahan dengan nilai
CRITICAL
.Asumsikan pemakaian CPU turun ke 75%. Pengendali kebijakan berhenti menghasilkan deret waktu "KRITIS" dan mulai membuat deret waktu "INFO".
Pengelola insiden melihat deret waktu baru yang memicu kondisi, deret waktu "INFO", dan membuka insiden. Notifikasi ini menyertakan label tingkat keparahan dengan nilai
INFO
.Pengelola insiden melihat bahwa tidak ada data yang masuk untuk deret waktu "KRITIS" dan bahwa ada insiden yang terbuka untuk deret waktu tersebut. Karena kebijakannya dikonfigurasi untuk menutup insiden saat data tidak lagi tiba, pengelola insiden menutup insiden yang terkait dengan deret waktu "KRITIS". Oleh karena itu, hanya insiden yang label tingkat keparahannya memiliki nilai
INFO
yang akan tetap terbuka.Terakhir, asumsikan bahwa pemakaian CPU turun menjadi 45%. Nilai ini kurang dari semua nilai minimum, sehingga pengendali kebijakan berhenti menghasilkan deret waktu "INFO" dan mulai menghasilkan deret waktu "GOOD".
Pengelola insiden melihat bahwa tidak ada data yang masuk untuk deret waktu "INFO" dan bahwa ada insiden yang terbuka untuk deret waktu tersebut. Karena kebijakan tersebut menggunakan setelan yang direkomendasikan, insiden ditutup.
Jika Anda tidak menggunakan nilai yang direkomendasikan untuk kolom evaluationMissingData
,
saat data berhenti tiba, insiden terbuka tidak akan langsung ditutup.
Hasilnya adalah Anda mungkin melihat beberapa insiden terbuka untuk deret waktu input
yang sama. Untuk informasi selengkapnya, lihat Data metrik parsial.
Langkah selanjutnya
- Membuat kebijakan pemberitahuan menggunakan Monitoring API
- Kebijakan pemberitahuan dengan MQL
- Menangani data metrik parsial