Halaman ini menjelaskan cara mengonfigurasi dokumentasi kebijakan pemberitahuan sehingga notifikasi memberikan resource dan informasi tambahan kepada responden insiden untuk penyelesaian insiden.
Struktur dokumentasi
Dokumentasi kebijakan pemberitahuan terdiri dari subjek, konten, dan link. Anda dapat mengonfigurasi dokumentasi di Google Cloud konsol, Cloud Monitoring API, dan Google Cloud CLI.
Subjek
Subjek dokumentasi Anda muncul di subjek notifikasi untuk insiden yang terkait dengan kebijakan pemberitahuan Anda. Penerima notifikasi dapat mengelola dan mengurutkan notifikasi berdasarkan subjek.
Baris subjek dibatasi hingga 255 karakter. Jika Anda tidak menentukan subjek dalam dokumentasi, Cloud Monitoring akan menentukan baris subjek. Baris subjek mendukung teks biasa dan variabel.
Cloud Monitoring API
Konfigurasi baris subjek notifikasi menggunakan subject kolom
dari documentation kebijakan pemberitahuan.
Google Cloud Konsol
Konfigurasi baris subjek notifikasi menggunakan kolom Notification subject line di bagian Notifications and name pada halaman Create alerting policy.
Konten
Konten dokumentasi Anda muncul dalam jenis notifikasi berikut:
- Email, di bagian Policy Documentation
- PagerDuty
- Pub/Sub
- Slack
- Webhook
Sebaiknya konfigurasi konten Anda sehingga responden insiden dapat melihat langkah-langkah remediasi dan informasi insiden dalam notifikasi yang terkait dengan kebijakan pemberitahuan Anda. Misalnya, Anda dapat mengonfigurasi dokumentasi untuk menyertakan ringkasan insiden dan informasi tentang resource yang relevan.
Konten dokumentasi mendukung hal berikut:
- Teks biasa
- Variabel
- Kontrol khusus channel
Cloud Monitoring API
Konfigurasi konten dokumentasi menggunakan kolom content
dari documentation kebijakan pemberitahuan.
Google Cloud Konsol
Konfigurasi konten dokumentasi menggunakan kolom Documentation di bagian Notifications and name pada halaman Create alerting policy.
Link
Anda dapat menambahkan link ke dokumentasi sehingga responden insiden dapat mengakses resource seperti playbook, repositori, dan Google Cloud dasbor dari notifikasi.
Cloud Monitoring API memungkinkan Anda menentukan objek yang berisi link paling relevan untuk responden. Meskipun konsol tidak memiliki kolom khusus untuk link, Anda dapat menambahkan bagian untuk link di isi dokumentasi. Google Cloud
Cloud Monitoring API
Anda dapat menambahkan link ke dokumentasi dengan menentukan satu atau beberapa
Link objek di kolom links dari kebijakan pemberitahuan
documentation. Setiap objek Link terdiri dari display_name dan url. Anda dapat memiliki hingga tiga link dalam dokumentasi.
Konfigurasi berikut menunjukkan kolom links dengan satu objek Link yang mewakili URL ke playbook insiden. URL menyertakan variabel sehingga penerima notifikasi dapat mengakses playbook yang benar berdasarkan resource yang dimonitor tempat insiden terjadi:
"links" [
{
"displayName": "Playbook",
"url": "https://myownpersonaldomain.com/playbook?name=${resource.type}"
}
]
Link dokumentasi yang ditambahkan menggunakan kolom Link muncul dalam jenis notifikasi berikut:
- Email, di bagian Quick Links
- PagerDuty
- Pub/Sub
- Webhook
Google Cloud Konsol
Anda dapat menambahkan link ke konten dokumentasi dengan menyertakannya di kolom Documentation pada kebijakan pemberitahuan. Misalnya, dokumentasi berikut mencantumkan URL untuk playbook pelanggan:
### Troubleshooting and Debug References
Playbook: https://myownpersonaldomain.com/playbook?name=${resource.type}
Link dokumentasi yang ditambahkan menggunakan Google Cloud konsol muncul dengan konten dokumentasi lainnya dalam jenis notifikasi berikut:
- Email, di bagian Policy Documentation
- PagerDuty
- Pub/Sub
- Slack
- Webhook
Markdown dalam konten dokumentasi
Anda dapat menggunakan Markdown untuk memformat konten dokumentasi. Konten dokumentasi mendukung subset tagging Markdown berikut:
- Header, ditunjukkan oleh karakter hash awal.
- Daftar tidak berurutan, ditunjukkan oleh karakter plus, minus, atau tanda bintang awal.
- Daftar berurutan, ditunjukkan oleh angka awal yang diikuti dengan titik.
- Teks miring, ditunjukkan oleh garis bawah atau tanda bintang tunggal di sekitar frasa.
- Teks tebal, ditunjukkan oleh garis bawah atau tanda bintang ganda di sekitar frasa.
- Link, ditunjukkan oleh sintaksis
[link text](url). Untuk menambahkan link ke notifikasi, sebaiknya gunakan Cloud Monitoring API dan konfigurasi objekLink.
Untuk mengetahui informasi selengkapnya tentang tagging ini, lihat referensi Markdown apa pun, misalnya, panduan Markdown.
Variabel dalam dokumentasi
Untuk menyesuaikan teks dalam dokumentasi, Anda dapat menggunakan variabel dalam bentuk ${varname}. Saat dokumentasi dikirim dengan
notifikasi, string ${varname} akan diganti dengan nilai yang diambil dari
resource yang sesuai Google Cloud , 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
Untuk kebijakan pemberitahuan berbasis log yang Anda buat menggunakan
Logs Explorer, nilai kolom ini adalah
|
log.extracted_label.KEY |
Nilai label KEY, yang diekstrak
dari entri log. Hanya untuk kebijakan pemberitahuan berbasis log; untuk mengetahui informasi selengkapnya, lihat
Membuat kebijakan 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.label.metadata_system_VALUE |
Mereferensikan label sistem metadata PromQL,
dengan VALUE adalah nama label tertentu, seperti
Contoh penggunaan:
|
metric.label.metadata_user_VALUE |
Mereferensikan label pengguna metadata PromQL,
dengan VALUE adalah nama label tertentu, seperti
Contoh penggunaan: |
metric_or_resource.labels |
Variabel ini merender semua nilai label metrik dan 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 dimulai dengan huruf kecil. Kunci dan nilai hanya dapat berisi huruf kecil, digit, garis bawah, dan tanda hubung. |
project |
ID project cakupan cakupan metrik, seperti
a-gcp-project. |
resource.type |
Jenis resource yang dimonitor, seperti gce_instance. |
resource.project |
Project ID resource yang dimonitor dari kebijakan pemberitahuan. |
resource.label.KEY |
Nilai label resource
KEY.1,2,3Untuk menemukan label yang terkait dengan jenis resource yang dimonitor, lihat Daftar resource. |
1 Misalnya, ${resource.label.zone} diganti dengan
nilai label zone. Nilai variabel ini dapat dikelompokkan; lihat null nilai 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 menggunakan resource.label.KEY. Gunakan metadata.user_label.KEY
sebagai gantinya.
Catatan penggunaan
- Hanya variabel dalam tabel yang didukung. Anda tidak dapat menggabungkannya ke dalam ekspresi yang lebih kompleks, seperti
${varname1 + varname2}. - Untuk menyertakan string literal
${dalam dokumentasi, gunakan karakter escape$simbol dengan simbol$kedua, dan$${akan dirender sebagai${dalam dokumentasi Anda. - Variabel ini hanya diganti dengan nilainya dalam notifikasi yang dikirim melalui saluran notifikasi. Di Google Cloud konsol, 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 menghapus label. Jika label dihapus, nilai label dalam notifikasi adalah
null. Untuk mengetahui informasi selengkapnya, lihat Variabel untuk label metrik adalah null.
Nilai null
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.KEYdanmetric.label.KEYdapat memilikinullnilai 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 dihilangkan dan akibatnya akan dirender sebagainullsaat variabel diganti dengan nilainya. Semua label dipertahankan jika tidak ada agregasi lintas deret. Untuk mengetahui informasi selengkapnya, lihat Variabel untuk label metrik adalah null.Nilai untuk variabel
metadata.*hanya tersedia jika label disertakan secara eksplisit dalam filter atau pengelompokan kondisi untuk agregasi lintas deret. 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:
- Google Chat
- Slack
- Pub/Sub, skema JSON versi 1.2
- Webhook, skema JSON versi 1.2
- PagerDuty, skema JSON versi 1.2
Kontrol channel
Teks di kolom dokumentasi juga dapat menyertakan karakter khusus yang digunakan oleh saluran notifikasi itu sendiri untuk mengontrol pemformatan dan notifikasi.
Misalnya, Slack menggunakan @ untuk penyebutan. Anda dapat menggunakan @ untuk menautkan notifikasi ke ID pengguna tertentu. Penyebutan tidak dapat menyertakan nama.
Misalkan Anda menyertakan string seperti ini di 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 akan menyebabkan Slack mengirim pesan tambahan ke ID pengguna backendoncall. Pesan yang dikirim oleh Slack kepada pengguna dapat berisi informasi yang relevan dari notifikasi; misalnya, "Insiden dibuat berdasarkan kebijakan High CPU rate of change".
Opsi tambahan ini khusus untuk channel; untuk mengetahui informasi selengkapnya tentang opsi yang mungkin tersedia, lihat dokumentasi yang disediakan oleh vendor channel.
Contoh
Contoh berikut menunjukkan versi konsol dan Cloud Monitoring API dari dokumentasi template untuk kebijakan pemberitahuan penggunaan CPU. Google Cloud Contoh ini menggunakan email untuk jenis saluran notifikasi. Template dokumentasi menyertakan beberapa variabel untuk meringkas insiden dan mereferensikan resource REST kebijakan pemberitahuan dan kondisi.
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 5% for over 60 seconds.\n\n#### Additional resource information\n\nCondition resource name: ${condition.name} \nAlerting policy resource name: ${policy.name}",
"mimeType": "text/markdown",
"subject": "Alert: ${metric.display_name} exceeded",
"links": [
{
"displayName": "Playbook",
"url": "https://myownpersonaldomain.com/playbook?name=${resource.type}"
},
{
"displayName": "Repository with debug scripts",
"url": "https://altostrat.com"
},
{
"displayName": "Google Cloud dashboard",
"url": "https://example.com"
}
]
}
Gambar berikut menunjukkan tampilan template ini dalam notifikasi email:

Google Cloud Konsol
### CPU utilization exceeded
#### Summary
The ${metric.display_name} of the ${resource.type}
${resource.label.instance_id} in the project ${resource.project} has
exceeded 5% for over 60 seconds.
#### Additional resource information
Condition resource name: ${condition.name}
Alerting policy resource name: ${policy.name}
#### Troubleshooting and Debug References
Playbook: https://myownpersonaldomain.com/playbook?name=${resource.type}
Repository with debug scripts: https://altostrat.com
${resource.type} dashboard: https://example.com
Gambar berikut menunjukkan tampilan template ini dalam notifikasi email:
