Halaman ini menjelaskan cara mengonfigurasi dokumentasi kebijakan pemberitahuan untuk menyesuaikan isi dan baris subjek notifikasi Anda. Kolom dokumentasi mendukung teks biasa, Markdown, variabel, dan kontrol khusus saluran.
Menambahkan informasi ke notifikasi
Anda dapat memberikan langkah-langkah perbaikan dan informasi tentang insiden dalam notifikasi kepada responden pemberitahuan, dengan menentukan konten tersebut saat Anda membuat kebijakan pemberitahuan. Misalnya, Anda dapat mengonfigurasi kebijakan pemberitahuan untuk menyertakan link ke playbook internal di setiap notifikasi.
Untuk contoh implementasi, lihat bagian Contoh di halaman ini.
Mengonfigurasi baris subjek notifikasi
Anda dapat mengelola dan mengurutkan notifikasi dengan menentukan baris subjek notifikasi tersebut. Baris subjek dibatasi hingga 255 karakter. Jika Anda tidak menetapkan subjek dalam dokumentasi, Cloud Monitoring akan menentukan baris subjek.
Anda dapat mengonfigurasi baris subjek saat menggunakan Cloud Monitoring API, Google Cloud CLI, atau Konsol Google Cloud.
Untuk contoh implementasi, lihat bagian Contoh di halaman ini.
Menggunakan Markdown
Bidang dokumentasi mendukung subset pemberian tag Markdown berikut:
- Header, ditunjukkan dengan karakter hash awal.
- Daftar yang tidak diurutkan, ditunjukkan dengan karakter plus, minus, atau tanda bintang awal.
- Daftar yang diurutkan, ditunjukkan dengan angka awal yang diikuti dengan titik.
- Teks miring, ditunjukkan dengan garis bawah tunggal atau tanda bintang di sekitar frasa.
- Teks tebal, ditunjukkan dengan garis bawah ganda atau tanda bintang di sekitar frasa.
- Link, ditunjukkan oleh sintaksis
[link text](url)
.
Untuk informasi selengkapnya tentang pemberian tag ini, lihat referensi Markdown, misalnya, Panduan markup.
Menggunakan variabel
Untuk menyesuaikan teks dalam dokumentasi, Anda dapat menggunakan variabel berformat ${varname}
. Saat dokumentasi dikirim dengan notifikasi, string ${varname}
akan diganti dengan nilai yang diambil dari resource Google Cloud terkait, seperti yang dijelaskan dalam tabel berikut.
Variabel | Nilai |
---|---|
condition.name |
Nama resource REST kondisi, sepertiprojects/foo/alertPolicies/1234/conditions/5678 . |
condition.display_name |
Nama tampilan kondisi, seperti
CPU usage increasing rapidly . |
log.extracted_label.KEY |
Nilai label KEY , diekstrak
dari entri log. Khusus untuk pemberitahuan berbasis log; untuk mengetahui informasi selengkapnya, lihat
Membuat pemberitahuan berbasis log menggunakan Monitoring API. |
metadata.system_label.KEY |
Nilai label metadata resource yang disediakan sistem KEY .1 |
metadata.user_label.KEY |
Nilai label metadata resource yang ditentukan pengguna KEY .1,3 |
metric.type |
Jenis metrik, seperticompute.googleapis.com/instance/cpu/utilization . |
metric.display_name |
Nama tampilan untuk jenis metrik, seperti
CPU utilization . |
metric.label.KEY |
Nilai label metrik Jika nilai variabel Saat Anda memigrasikan aturan pemberitahuan Prometheus, template kolom pemberitahuan Prometheus Anda juga dapat menggunakan |
metric_or_resource.labels |
Variabel ini merender semua nilai metrik dan label resource sebagai daftar pasangan Saat Anda memigrasikan aturan pemberitahuan Prometheus, template kolom pemberitahuan Prometheus |
metric_or_resource.label.KEY |
Saat Anda memigrasikan aturan pemberitahuan Prometheus, template kolom pemberitahuan Prometheus |
policy.name |
Nama resource REST kebijakan, seperti
projects/foo/alertPolicies/1234 . |
policy.display_name |
Nama tampilan kebijakan, seperti
High CPU rate of change . |
policy.user_label.KEY |
Nilai label pengguna KEY .1
Kunci harus diawali dengan huruf kecil. Kunci dan nilai hanya boleh berisi huruf kecil, angka, garis bawah, dan tanda hubung. |
project |
ID project pencakupan dari cakupan metrik, seperti a-gcp-project . |
resource.type |
Jenis resource yang dimonitor, seperti gce_instance . |
resource.project |
Project ID dari resource yang dipantau dari kebijakan pemberitahuan. |
resource.label.KEY |
Nilai label resource
KEY .1,2,3Untuk menemukan label yang terkait dengan jenis resource yang dipantau, lihat Daftar resource. |
1 Misalnya, ${resource.label.zone}
diganti dengan
nilai label zone
. Nilai variabel ini dapat mengalami pengelompokan; lihat nilai null
untuk mengetahui informasi selengkapnya.
2 Untuk mengambil nilai label project_id
pada resource yang dimonitor dalam kebijakan pemberitahuan, gunakan ${resource.project}
.
3 Anda tidak dapat mengakses label metadata resource yang ditentukan pengguna dengan
menggunakan resource.label.KEY.
. Gunakan metadata.user_label.KEY
.
Catatan penggunaan
- Hanya variabel dalam tabel yang didukung. Anda tidak dapat menggabungkannya menjadi
ekspresi yang lebih kompleks, seperti
${varname1 + varname2}
. - Untuk menyertakan string literal
${
dalam dokumentasi Anda, konversikan simbol$
dengan simbol$
kedua, dan$${
render sebagai${
dalam dokumentasi Anda. - Variabel ini diganti dengan nilainya hanya dalam notifikasi yang dikirim melalui saluran notifikasi. Di Konsol Google Cloud, saat dokumentasi ditampilkan, Anda akan melihat variabel, bukan nilainya. Contoh di konsol mencakup deskripsi insiden dan pratinjau dokumentasi saat membuat kebijakan pemberitahuan.
- Pastikan setelan agregasi kondisi tidak menghilangkan
label. Jika label dihapus, nilai label dalam
notifikasi adalah
null
. Untuk informasi selengkapnya, lihat Variabel untuk label metrik adalah null.
Contoh
Contoh berikut menunjukkan versi dokumentasi template Konsol Google Cloud dan Cloud Monitoring API untuk kebijakan pemberitahuan penggunaan CPU, dan dokumentasi yang dirender yang muncul dalam isi notifikasi. Contoh ini menggunakan email untuk jenis saluran notifikasi. Template dokumentasi menyertakan beberapa variabel untuk meringkas insiden serta untuk mereferensikan kebijakan pemberitahuan dan resource REST kondisi.
Konsol Google Cloud
## CPU utilization exceeded ### Summary The ${metric.display_name} of the ${resource.type} ${resource.label.instance_id} in the project ${resource.project} has exceeded 90% for over 15 minutes. ### Additional resource information Condition resource name: ${condition.name} Alerting policy resource name: ${policy.name} ### Troubleshooting and Debug References Repository with debug scripts: example.com Internal troubleshooting guide: example.com ${resource.type} dashboard: example.com
Cloud Monitoring API
"documentation": { "content": "## CPU utilization exceeded\n\n### Summary\n\nThe ${metric.display_name} of the ${resource.type} ${resource.label.instance_id} in the project ${resource.project} has exceeded 90% for over 15 minutes.\n\n### Additional resource information\n\nCondition resource name: ${condition.name} \nAlerting policy resource name: ${policy.name} \n\n### Troubleshooting and Debug References\n \nRepository with debug scripts: example.com \nInternal troubleshooting guide: example.com \n${resource.type} dashboard: example.com", "mimeType": "text/markdown", "subject": "Alert: ${metric.display_name} exceeded" }
Format dalam notifikasi
null
nilai
Nilai untuk variabel metric.*
, resource.*
, dan metadata.*
berasal dari deret waktu. Nilainya dapat berupa null
jika tidak ada nilai yang ditampilkan dari kueri deret waktu.
Variabel
resource.label.KEY
danmetric.label.KEY
dapat memiliki nilainull
jika kebijakan pemberitahuan Anda menggunakan agregasi lintas deret (pengurangan), misalnya, menghitung SUM di setiap deret waktu yang cocok dengan filter. Saat menggunakan agregasi lintas deret, label apa pun yang tidak digunakan dalam pengelompokan akan dihapus, sehingga dirender sebagainull
saat variabel diganti dengan nilainya. Semua label dipertahankan jika tidak ada agregasi lintas seri. Untuk informasi selengkapnya, lihat Variabel untuk label metrik adalah null.Nilai untuk variabel
metadata.*
hanya tersedia jika label secara eksplisit disertakan dalam filter atau pengelompokan kondisi untuk agregasi lintas seri. Artinya, Anda harus merujuk ke label metadata dalam filter atau pengelompokan agar memiliki nilai untuk template.
Resolusi variabel
Variabel dalam template dokumentasi hanya diselesaikan dalam notifikasi yang dikirim menggunakan saluran notifikasi berikut:
- Slack
- Pub/Sub, skema JSON versi 1.2
- Webhook, skema JSON versi 1.2
- PagerDuty, skema JSON versi 1.2
Variabel tidak di-resolve, tetapi muncul sebagai string seperti ${varname}
,
dalam konteks lain, termasuk yang berikut:
- Di halaman Detail insiden di konsol Google Cloud.
- Dalam notifikasi yang dikirimkan dengan menggunakan saluran notifikasi lain.
Menggunakan kontrol channel
Teks dalam kolom dokumentasi juga dapat menyertakan karakter khusus yang digunakan oleh saluran notifikasi itu sendiri untuk mengontrol pemformatan dan notifikasi.
Misalnya, Slack menggunakan @
untuk sebutan. Anda dapat menggunakan @
untuk menautkan notifikasi ke ID pengguna tertentu. Sebutan tidak boleh menyertakan nama.
Misalkan Anda menyertakan string seperti ini dalam kolom dokumentasi:
<@backendoncall> Incident created based on policy ${policy.display_name}
Saat kolom dokumentasi diterima oleh saluran Slack yang relevan sebagai bagian
dari notifikasi, string sebelumnya menyebabkan Slack mengirim
pesan tambahan ke ID pengguna
backendoncall
. Pesan yang dikirim oleh Slack kepada pengguna dapat berisi informasi yang relevan dari notifikasi tersebut; misalnya, "Insiden dibuat berdasarkan kebijakan tingkat perubahan CPU tinggi".
Opsi tambahan ini khusus untuk saluran tersebut. Untuk mengetahui informasi lebih lanjut tentang apa saja yang mungkin tersedia, lihat dokumentasi yang disediakan oleh vendor saluran.