Kasus penggunaan untuk pemberitahuan MQL

Kebijakan pemberitahuan dengan kondisi berbasis Bahasa Kueri Monitoring (MQL) memungkinkan Anda mengonfigurasi lingkungan pemberitahuan untuk berbagai kemungkinan kasus penggunaan. Konfigurasi tertentu hanya tersedia melalui penggunaan kueri MQL.

Dokumen ini menjelaskan beberapa kasus penggunaan dan contoh kueri untuk men-deploy kebijakan pemberitahuan dengan kondisi berbasis MQL di lingkungan produksi.

Pemberitahuan tentang nilai minimum dinamis

Anda dapat menggunakan kueri MQL untuk mengonfigurasi kebijakan pemberitahuan yang memicu pemberitahuan berdasarkan nilai minimum yang bervariasi dari waktu ke waktu, seperti hari dalam seminggu. Konfigurasi ini tidak didukung dalam pemberitahuan kondisi kebijakan tanpa kueri MQL.

Misalnya, Anda memiliki kueri MQL yang mengirim pemberitahuan jika penggunaan CPU instance Compute Engine melebihi 95%:

fetch gce_instance :: compute.googleapis.com/instance/cpu/utilization
| align
| every 30s
| condition utilization > 95'%'

Namun, Anda ingin menetapkan batas penggunaan yang lebih rendah, seperti 85%, untuk akhir pekan, untuk memperhitungkan waktu respons yang lebih lama dari tim dukungan. Dalam hal ini, Anda dapat mengonfigurasi kueri dengan kolom nilai yang berisi nilai minimum pemberitahuan:

fetch gce_instance :: compute.googleapis.com/instance/cpu/utilization
| align
| every 30s
| value add [day_of_week: end().timestamp_to_string('%w').string_to_int64]
| value [utilization, is_weekend: day_of_week = 0 || day_of_week = 6]
| value [utilization, max_allowed_utilization: if(is_weekend, 85'%', 95'%')]
| condition utilization > scale(max_allowed_utilization)

Operasi value melakukan hal berikut:

  • value add [day_of_week: end().timestamp_to_string('%w').string_to_int64] menambahkan kolom nilai yang nilainya antara 0 dan 6, dengan 0 adalah Minggu dan 6 adalah hari Sabtu.
  • value [utilization, is_weekend: day_of_week = 0 || day_of_week = 6] mengganti angka hari dengan boolean yang menunjukkan apakah titik data berada di akhir pekan atau hari kerja.
  • value [utilization, max_allowed_utilization: if(is_weekend, 85'%', 95'%')] mengganti boolean dengan nilai minimum yang bervariasi bergantung pada nilai is_weekend.

Kondisi, condition utilization > scale(max_allowed_utilization), membandingkan dua kolom nilai.

Untuk contoh kebijakan pemberitahuan dengan kondisi berbasis MQL yang mengonfigurasi tingkat keparahan insiden berdasarkan kriteria dinamis, lihat Membuat tingkat keparahan dinamis menggunakan MQL.

Pemberitahuan pada nilai minimum berdasarkan laju perubahan

Anda dapat mengonfigurasi kueri MQL kebijakan pemberitahuan untuk mengevaluasi nilai minimum berdasarkan laju perubahan metrik. Misalnya, Anda ingin mengevaluasi tingkat error 5xx per instance resource.method dalam permintaan API, di mana tarif Anda setara dengan permintaan per detik. Jika rasionya lebih besar dari 5 respons error per detik, Cloud Monitoring akan mengirimkan pemberitahuan:

fetch consumed_api
| metric 'serviceruntime.googleapis.com/api/request_count'
| filter (metric.response_code_class == '5xx')
| align rate(10m)
| every 30s
| group_by [resource.method],
    [value_request_count_mean: mean(value.request_count)]
| condition val() > 0.05'1/s'

Anda dapat membuat kebijakan pemberitahuan rasio perubahan tanpa menggunakan MQL:

Pemberitahuan tentang nilai minimum berbasis rasio

Kebijakan pemberitahuan Anda dapat menggunakan kueri MQL untuk mengevaluasi rasio yang diperoleh dengan menggabungkan dua metrik, lalu membagi kolom nilai. Misalnya, Anda ingin membuat kueri rasio byte read dibandingkan dengan write byte untuk setiap instance Compute Engine Anda. Jika rasionya lebih besar dari 3/5, atau 60%, Cloud Monitoring akan mengirim pemberitahuan:

{
  fetch gce_instance :: compute.googleapis.com/instance/disk/read_bytes_count;
  fetch gce_instance :: compute.googleapis.com/instance/disk/write_bytes_count
}
| every 30s
| join
| value val(0) / val(1)
| condition val() > 0.6

Anda juga dapat mengkueri rasio nilai gabungan. Misalnya, Anda ingin menghitung waktu penggunaan CPU rata-rata per core di seluruh instance Compute Engine. Jika rasionya lebih besar dari 3/5, atau 60%, Cloud Monitoring akan mengirim pemberitahuan:

{
  fetch gce_instance :: compute.googleapis.com/instance/cpu/usage_time
  | group_by [], .sum;
  fetch gce_instance :: compute.googleapis.com/instance/cpu/reserved_cores
  | group_by [], .sum
}
| every 30s
| ratio
| condition val() > 0.6

Anda dapat membuat kebijakan pemberitahuan berbasis rasio tanpa menggunakan MQL:

  • Untuk contoh yang menggunakan Konsol Google Cloud, lihat Rasio komputasi.
  • Untuk mengetahui contoh yang menggunakan Cloud Monitoring API, lihat Rasio metrik.