Alert Management di Managed Service for OpenTelemetry memungkinkan Anda mengirim notifikasi peringatan ke URL webhook pihak ketiga. Topik ini menggunakan Lark sebagai contoh untuk menjelaskan cara membuat peringatan webhook.
Langkah 1: Dapatkan URL webhook
Konfigurasikan bot webhook Lark di PC Anda.
-
Buka dan masuk ke Lark.
-
Klik ikon +, lalu klik Create group untuk membuat grup peringatan.
-
Klik ikon pengaturan grup, lalu klik tab Bots.
-
Pada tab Bots, klik Add Bot.
-
Di panel Add Bot, pilih Custom Bot.
-
Pada halaman konfigurasi, tetapkan display name dan description, lalu klik Add.
-
Di panel konfirmasi yang muncul, klik Copy, lalu klik Finish. Salin webhook URL dan simpan dengan aman. Jangan memublikasikannya secara terbuka. Di area Security Settings, centang kotak Custom Keywords, tambahkan kata kunci alert, lalu klik Finish.
Langkah 2: Buat objek notifikasi webhook
-
Pada panel navigasi sebelah kiri, pilih . Klik tab Webhook Integration, lalu klik Create Webhook.
-
Di kotak dialog Create Webhook, konfigurasikan parameter berikut.
Parameter
Deskripsi
Webhook Name
Wajib diisi. Nama kustom untuk webhook.
Post or Get
Wajib diisi. Metode permintaan. URL tidak boleh melebihi 256 karakter.
Pada contoh ini, pilih Post dan tempel URL webhook dari Langkah 1: Dapatkan URL webhook ke dalam kotak teks di sebelah kanan.
Header or Param
Opsional. Header permintaan. Nilainya tidak boleh melebihi 200 karakter. Klik + Create untuk menambahkan informasi header atau parameter lainnya. Header permintaan default adalah Content-Type: text/plain; charset=UTF-8. Jumlah total header dan parameter tidak boleh melebihi enam.
Pada contoh ini, tetapkan dua header berikut:
-
Arms-Content-Type : json
-
Content-Type : application/json
Notification template
Templat untuk notifikasi yang dikirim saat peringatan dipicu. Parameter ini opsional dan hanya muncul jika Anda memilih metode permintaan Post. Anda dapat menggunakan variabel templat $content untuk menampilkan konten notifikasi. Templat tidak boleh melebihi 500 karakter. Untuk informasi selengkapnya, lihat Konfigurasi templat notifikasi dan templat webhook.
Berikut adalah contoh templat notifikasi:
{ "Alert Name":"{{ .commonLabels.alertname }}{{if .commonLabels.clustername }}", "Cluster Name":"{{ .commonLabels.clustername }} {{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}", "Application Name":"{{ .commonLabels._aliyun_arms_involvedObject_name }} {{ end }}", "Notification Policy":"{{ .dispatchRuleName }}", "Alert Time":"{{ .startTime }}", "Alert Content":"{{ for .alerts }} {{ .annotations.message }} {{ end }}" }Pada contoh ini menggunakan Lark, Anda dapat menggunakan format teks berikut:
{ "msg_type": "text", "content": { "text": "Alert Name: {{ .commonLabels.alertname }}\n{{if .commonLabels.clustername }}Cluster Name: {{ .commonLabels.clustername }}\n{{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}Application Name: {{ .commonLabels._aliyun_arms_involvedObject_name }}\n{{ end }}Notification Policy: {{ .dispatchRuleName }} \nAlert Time: {{ .startTime }} \nAlert Content: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}" } }Alert resolution template
Templat untuk notifikasi yang dikirim saat peringatan terselesaikan. Parameter ini opsional dan hanya muncul jika Anda memilih metode permintaan Post. Anda dapat menggunakan variabel templat $content untuk menampilkan konten notifikasi. Templat tidak boleh melebihi 500 karakter. Untuk informasi selengkapnya, lihat Konfigurasi templat notifikasi dan templat webhook.
Berikut adalah contoh templat resolusi peringatan:
{ "Alert Name":"{{ .commonLabels.alertname }}{{if .commonLabels.clustername }}", "Cluster Name":"{{ .commonLabels.clustername }} {{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}", "Application Name":"{{ .commonLabels._aliyun_arms_involvedObject_name }} {{ end }}", "Notification Policy":"{{ .dispatchRuleName }}", "Resolution Time":"{{ .endTime }}", "Alert Content":"{{ for .alerts }} {{ .annotations.message }} {{ end }}" }Pada contoh ini menggunakan Lark, Anda dapat menggunakan format teks berikut:
{ "msg_type": "text", "content": { "text": "Alert Name: {{ .commonLabels.alertname }}\n{{if .commonLabels.clustername }}Cluster Name: {{ .commonLabels.clustername }}\n{{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}Application Name: {{ .commonLabels._aliyun_arms_involvedObject_name }}\n{{ end }}Resolution Time: {{ .endTime }} \nNotification Policy: {{ .dispatchRuleName }} \nResolved Alert Content: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}" } } -
-
Klik Send Test untuk memverifikasi konfigurasi.
-
Klik OK.
Langkah 3: Konfigurasi kebijakan notifikasi
Buat atau edit kebijakan notifikasi, atur the Notification Object menjadi Universal Webhook, lalu pilih Webhook Integration yang sesuai.
Jika titik akhir target tidak merespons dalam waktu 5 detik, peringatan webhook akan timeout dan notifikasi gagal.