Kebijakan pemberitahuan untuk laju pengeluaran anggaran error 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 pemilih tersebut sebagai dasar untuk kebijakan pemberitahuan. Untuk diskusi 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 cara tertentu: filter
dalam spesifikasi kondisi MetricThreshold
menggunakan pemilih deret waktu, bukan sepasang metrik dan jenis resource yang dimonitor.
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 tingkat pembakaran melebihi 2 kali lipat tingkat 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 berbentuk
projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}
.
Untuk mengetahui informasi tentang cara menemukan ID SLO, lihat Mencantumkan SLO.
Untuk membuat pemberitahuan tentang tingkat penggunaan, gunakan pemilih deret waktu
select_slo_burn_rate
. Pemilih ini menggunakan dua nilai, SLO target dan periode lihat balik. Untuk informasi selengkapnya, lihat select_slo_burn_rate
.
Misalnya, filter berikut mendapatkan tingkat penggunaan SLO target dengan periode lihat balik 1 jam:
"filter":"select_slo_burn_rate(\"projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}\", \"60m\")"
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
berfungsi.notificationChannels
: Array saluran notifikasi yang ada untuk digunakan saat kebijakan pemberitahuan dipicu. Untuk 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 tingkat penggunaan. Untuk 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 dalam 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