Kebijakan pemberitahuan untuk laju pengeluaran anggaran error Anda didasarkan pada
pemilih deret waktu select_slo_burn_rate, yang dijelaskan dalam Mengambil data
SLO. Ada pemilih deret waktu lainnya, dan Anda dapat menggunakan beberapa di antaranya sebagai dasar untuk kebijakan pemberitahuan. Untuk pembahasan kebijakan pemberitahuan berbasis SLO, lihat Pemberitahuan tentang laju pengeluaran Anda.
Anda membuat kebijakan pemberitahuan menggunakan metode
alertPolicies.create. Penggunaan umum
metode ini didokumentasikan dalam Mengelola kebijakan pemberitahuan.
Kebijakan pemberitahuan untuk SLO mirip dengan kebijakan pemberitahuan nilai minimum metrik lainnya,
tetapi berbeda dalam satu hal tertentu: filter
dalam MetricThreshold spesifikasi
kondisi menggunakan pemilih deret waktu, bukan pasangan jenis metrik dan
resource yang dipantau.
Kondisi untuk kebijakan pemberitahuan berbasis SLO
Kebijakan pemberitahuan harus memiliki setidaknya satu kondisi. Untuk kondisi berbasis SLO, gunakan kondisi jenis MetricThreshold.
Kondisi nilai minimum metrik dapat berisi dua pasang konfigurasi deret waktu: filter dan aggregations. Karena data SLO diambil secara berbeda dari data deret waktu lainnya, satu-satunya kolom yang digunakan dalam kondisi untuk SLO adalah kolom filter.
Kondisi untuk SLO menetapkan kolom comparison, thresholdValue, duration, dan trigger.
Contoh ini membuat kondisi yang dilanggar saat laju pengeluaran melebihi 2 kali laju normal. Strukturnya terlihat seperti ini:
"conditions": [
{
"displayName":"SLO burn rate alert for ${SLO_ID} exceeds 2",
"conditionThreshold": {
"filter": DATA_RETRIEVAL_FILTER_FOR_SLO,
"comparison":"COMPARISON_GT",
"thresholdValue": 2,
"duration": {
"seconds":"0",
},
},
}
],
Untuk menetapkan kolom filter, Anda memerlukan nama resource SLO tertentu. Nilai ini memiliki format projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}.
Untuk mengetahui informasi tentang cara menemukan ID SLO, lihat Mencantumkan SLO.
Untuk membuat pemberitahuan tentang laju pengeluaran, gunakan pemilih deret waktu select_slo_burn_rate. Pemilih ini mengambil dua nilai, SLO target dan periode lihat balik. Untuk mengetahui informasi selengkapnya, lihat
select_slo_burn_rate.
Misalnya, filter berikut mendapatkan laju pengeluaran SLO target dengan periode lihat balik 1 jam:
"filter":"select_slo_burn_rate(\"projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}\", \"60m\")"
Bagian lain dari kebijakan pemberitahuan
Untuk menyelesaikan kebijakan pemberitahuan, tentukan nilai untuk kolom yang tersisa:
displayName: Deskripsi kebijakan pemberitahuan.combiner: Menjelaskan logika untuk menggabungkan kondisi. Kebijakan ini hanya memiliki satu kondisi, sehinggaANDatauORdapat digunakan.notificationChannels: Array saluran notifikasi yang ada untuk digunakan saat kebijakan pemberitahuan dipicu. Untuk mengetahui informasi tentang cara menemukan dan membuat saluran notifikasi, lihat Saluran notifikasi.documentation: Informasi yang dikirim saat kondisi dilanggar untuk membantu penerima mendiagnosis masalah. Untuk mengetahui detailnya, lihatDocumentation.
Membuat kebijakan pemberitahuan
Contoh berikut menggunakan API untuk membuat kebijakan pemberitahuan laju pengeluaran. Untuk mengetahui informasi tentang cara mencantumkan, mengubah, dan menghapus kebijakan pemberitahuan, lihat Mengelola kebijakan pemberitahuan dengan API.
Misalnya, untuk membuat kebijakan pemberitahuan menggunakan curl, kirim pesan POST ke endpoint https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/alertPolicies, dan berikan kebijakan pemberitahuan di isi permintaan. JSON di isi permintaan menjelaskan kebijakan pemberitahuan yang menggunakan kondisi nilai minimum berdasarkan pemilih deret waktu select_slo_burn_rate dengan periode lihat balik satu jam.
Buat variabel untuk menyimpan isi permintaan:
CREATE_ALERT_POST_BODY=$(cat <<EOF { "displayName":"SLO burn-rate alert for ${SLO_ID} with a threshold of 2", "combiner":"AND", "conditions": [ { "displayName":"SLO burn rate alert for ${SLO_ID} exceeds 2", "conditionThreshold": { "filter":"select_slo_burn_rate(\"projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}\", \"60m\")", "comparison":"COMPARISON_GT", "thresholdValue": 2, "duration": { "seconds":"0", }, }, } ], "notificationChannels": ["${NOTIFICATION_CHANNEL}", ], "documentation": { "content": "SLO burn for the past 60m exceeded twice the acceptable budget burn rate.", "mime_type": "text/markdown", }, } EOF )Posting permintaan ke endpoint:
curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" --header "Content-Type: application/json" -X POST -d "${CREATE_ALERT_POST_BODY}" https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/alertPolicies