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 mengetahui pembahasan tentang kebijakan pemberitahuan berbasis SLO, lihat Pemberitahuan tentang laju pengeluaran.
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
batas metrik lainnya, tetapi berbeda dalam satu hal tertentu: filter
dalam spesifikasi MetricThreshold
dari
kondisi menggunakan pemilih deret waktu, bukan sepasang jenis metrik dan
resource yang dipantau.
Kondisi untuk kebijakan pemberitahuan berbasis SLO
Kebijakan pemberitahuan harus memiliki minimal satu kondisi. Untuk kondisi berbasis SLO, gunakan kondisi jenis MetricThreshold
.
Kondisi nilai minimum metrik dapat berisi dua pasangan 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 pembakaran 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 menyetel kolom filter
, Anda memerlukan nama resource SLO tertentu. Nilai
ini berbentuk
projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}
.
Untuk mengetahui informasi tentang cara menemukan ID SLO, lihat Mencantumkan SLO.
Untuk membuat pemberitahuan tentang laju pembakaran, gunakan pemilih deret waktu
select_slo_burn_rate
. Pemilih ini mengambil dua nilai, SLO target dan periode lihat kembali. Untuk informasi selengkapnya, lihat select_slo_burn_rate
.
Misalnya, filter berikut mendapatkan laju pembakaran SLO target dengan periode lihat kembali 1 jam:
"filter":"select_slo_burn_rate(\"projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}\", \"60m\")"
Bagian kebijakan pemberitahuan lainnya
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, sehinggaAND
atauOR
dapat berfungsi.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 pembakaran. Untuk mengetahui informasi tentang cara mencantumkan, mengubah, dan menghapus kebijakan pemberitahuan, lihat Mengelola kebijakan pemberitahuan menurut API.
Protokol
Untuk membuat kebijakan pemberitahuan menggunakancurl
, kirim pesan POST
ke endpoint https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/alertPolicies
, dan berikan
kebijakan pemberitahuan dalam 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 kembali 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 )
Kirim 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