Topik ini menjelaskan variabel yang tersedia di versi baru templat konten dan cara mereferensikannya.
Metode referensi
Saat mereferensikan variabel, nama variabel harus cocok secara tepat.
Jika variabel yang direferensikan tidak ada atau referensi tidak valid, sistem akan menggantinya dengan string kosong secara default.
Jika nilai dari variabel yang direferensikan adalah objek, nilainya akan dikonversi menjadi string JSON.
Nama variabel dalam templat hanya dapat berisi huruf besar, huruf kecil, angka, dan garis bawah (_). Nama tersebut tidak boleh dimulai dengan angka.
Jika nama variabel mengikuti aturan standar, Anda dapat mereferensikan nilainya menggunakan
{{alert.xxx}}.Jika nama variabel tidak mengikuti aturan standar, seperti
__tag__:__namespace__, Anda dapat mereferensikan nilainya menggunakan{{alert.annotations["__tag__:__namespace__"] }}.
Saat mengonfigurasi kebijakan aksi, Anda harus memilih templat konten. Templat konten mendefinisikan isi dan subjek notifikasi. Di bidang Content dan Subject/Title, Anda dapat mereferensikan variabel templat menggunakan format {{ alert.xxx }}. Saat Simple Log Service mengirimkan pemberitahuan peringatan, ia mengganti variabel templat di bidang Content dan Subject/Title dengan nilai sebenarnya. Sebagai contoh, {{ alert.project }} diganti dengan nama proyek tempat aturan peringatan milik.

Anda juga dapat menggunakan aliran kontrol dan fungsi bawaan untuk memanipulasi dan memproses variabel. Untuk informasi lebih lanjut tentang sintaks templat dan fungsi bawaan, lihat Sintaks untuk Templat Konten Baru dan Fungsi Templat Bawaan.
Properti Peringatan
Variabel | Deskripsi | Tipe Data | Contoh nilai | Contoh referensi |
aliuid | ID akun Alibaba Cloud pemilik proyek. | string | 117918634953**** | Aturan peringatan untuk pengguna |
alert_instance_id | ID instans yang memicu peringatan. | string | ee16a8f435485f3f-5be6b81edc520-3d6**** | ID instans adalah |
alert_id | ID aturan peringatan. ID ini harus unik dalam sebuah proyek. | string | alert-12345 | ID aturan peringatan adalah |
alert_name | Nama aturan alert. | string | Aturan alert uji | Aturan peringatan |
alert_type | Tipe peringatan.
| string | sls_alert | Tipe peringatan adalah |
region | Wilayah. | string | cn-hangzhou | Peringatan dipicu di wilayah |
project | Proyek tempat aturan alert berada. | string | my-project | Aturan peringatan di proyek |
next_eval_interval | Interval evaluasi berikutnya, dalam detik. | int | 300 | Evaluasi berikutnya dimulai setelah |
alert_time | Waktu evaluasi saat ini. | int | 1616744734 | Waktu evaluasi peringatan saat ini adalah |
fire_time | Waktu ketika peringatan pertama kali dipicu. | int | 1616059834 | Peringatan pertama kali dipicu pada |
status | Status peringatan.
| string | firing | Status peringatan adalah |
resolve_time | Waktu ketika peringatan pulih.
| int | 0 | Waktu pemulihan peringatan adalah |
severity | Tingkat keparahan peringatan.
| int | 10 | Tingkat keparahan peringatan adalah |
labels | Daftar label. | map | {"env":"test"} | Label peringatan adalah |
annotations | Daftar anotasi. | map | { "title": "Judul Peringatan","desc": "Deskripsi Peringatan" } | Anotasi peringatan adalah |
results | Parameter kueri dan hasil antara, dalam format array. Untuk informasi lebih lanjut tentang nilai variabel ini, lihat Struktur QueryData. | array | Lihat Lampiran di akhir topik ini. | Waktu mulai kueri pertama adalah |
fire_results | Data yang memicu peringatan. Ini adalah data setelah operasi himpunan. Maksimal 100 entri data dikembalikan. Jika nilai variabel fire_results melebihi 2 KB dan panjang bidang dalam hasil kueri melebihi 1 KB, bagian yang berlebih akan dipotong. Untuk informasi lebih lanjut tentang cara menangani data terpotong, lihat Apa yang harus saya lakukan jika peringatan dipicu untuk terlalu banyak log dan pemberitahuan peringatan tidak menampilkan semua log? | array | Lihat Lampiran di akhir topik ini. | Data yang dihasilkan saat peringatan dipicu adalah |
fire_results_count | Total jumlah entri data yang memicu peringatan. Jumlah ini bisa lebih dari 100. Misalnya, total entri setelah operasi produk Kartesius. | int | 3 | Total jumlah entri data yang dihasilkan saat peringatan dipicu adalah |
condition | Ekspresi evaluasi yang memicu peringatan. Dalam ekspresi ini, variabel yang Anda konfigurasikan diganti dengan nilai yang memicu peringatan. Nilai-nilai tersebut dilingkupi dalam tanda kurung siku (`[]`). Formatnya adalah | string |
| Ekspresi evaluasi peringatan adalah |
raw_condition | Ekspresi evaluasi asli di mana variabel tidak diganti dengan nilai sebenarnya. Formatnya adalah | string |
| Ekspresi evaluasi asli adalah |
policy | Kebijakan peringatan atau kebijakan aksi. Untuk informasi lebih lanjut tentang nilai variabel ini, lihat Struktur Kebijakan. | map | Lihat Lampiran di akhir topik ini. | ID kebijakan peringatan adalah |
dashboard | Nama dasbor yang terkait dengan alert. | string | mydashboard | Nama dasbor yang terkait dengan peringatan adalah |
alert_url | URL halaman detail peringatan. | string | https://sls.console.alibabacloud.com/lognext/project/test-xxxx/alert/alert-1617164106-940166 | URL peringatan adalah |
query_url | URL halaman kueri pertama di Query/Analysis. | string | https://sls.console.alibabacloud.com/lognext/project/test-xxx/logsearch/test-alert-access?encode=base64&endTime=1617175989&queryString=KiB8IHNlbGVjdCBjb3VudCgxKSBhcyBjbn****&queryTimeType=99&startTime=1617175089 | URL halaman kueri pertama di Query/Analysis adalah |
alert_history_dashboard_url | URL laporan statistik sejarah peringatan. | string | https://sls.console.alibabacloud.com/lognext/project/test-xx/dashboard/internal-alert-analysis | URL laporan statistik sejarah peringatan adalah |
dashboard_url | URL dasbor yang terkait dengan alert. | string | https://sls.console.alibabacloud.com/next/project/myproject/dashboard/mydashboard | URL dasbor yang terkait dengan peringatan adalah |
fingerprint | Sidik jari peringatan. Untuk informasi lebih lanjut, lihat Deduplikasi peringatan berdasarkan sidik jari. | string | 478325709134bc5c | Sidik jari peringatan adalah |
signin_url | URL yang dapat Anda gunakan untuk melihat detail peringatan tanpa masuk ke konsol. Untuk informasi lebih lanjut, lihat Lihat detail peringatan tanpa masuk. | string | https://sls.console.alibabacloud.com/console/AlertAjax/slsSignIn.json?token=xxxx |
|
Struktur Kebijakan
Tabel berikut menjelaskan variabel yang dapat dirujuk dalam variabel policy.
Variabel | Deskripsi | Tipe Data | Contoh nilai |
alert_policy_id | ID kebijakan peringatan. | string | sls.test-alert |
action_policy_id | ID kebijakan aksi yang ditentukan dalam aturan peringatan. Variabel ini tersedia hanya jika kebijakan peringatan menggunakan kebijakan aksi dinamis. | string | sls.test-action |
repeat_interval | Interval pengulangan. Variabel ini tersedia hanya jika kebijakan peringatan menggunakan kebijakan aksi dinamis. | string | 4h |
Struktur QueryData
Tabel berikut menjelaskan variabel yang dapat dirujuk dalam variabel results.
Variabel | Deskripsi | Tipe Data | Contoh nilai |
store_type | Kelas penyimpanan.
| string | log |
region | Wilayah tempat database tujuan untuk kueri berada. Variabel ini kosong jika kelas penyimpanan adalah `meta`. | string | cn-hangzhou |
project | Proyek tempat database tujuan untuk kueri berada. Jika kelas penyimpanan adalah data sumber daya, nilai variabel tersebut kosong. | string | sls-test-alert |
store | Nama database tujuan untuk kueri. | string | test-logstore |
query | Pernyataan kueri. | string | error | select count(1) as cnt |
start_time | Awal rentang waktu untuk kueri. Variabel ini kosong jika kelas penyimpanan adalah `meta`. | int | 1616741485 |
end_time | Akhir rentang waktu untuk kueri. Nilai variabel ini kosong ketika kelas penyimpanan adalah data sumber daya. | int | 1616745085 |
raw_results | Data rekaman hasil kueri dalam format array. Maksimal 100 baris dikembalikan. Jika nilai variabel raw_results melebihi 2 KB dan panjang bidang dalam hasil kueri melebihi 1 KB, bagian yang berlebih akan dipotong. | array | |
raw_results_count | Total jumlah rekaman data hasil kueri. Jumlah ini bisa lebih dari 100. | int | 20 |
fire_result | Data rekaman pertama dalam set hasil yang memicu peringatan. Parameter ini hanya mengembalikan rekaman pertama karena set hasil mungkin berisi beberapa rekaman. | map | |
query_url | URL kueri. Variabel ini kosong jika kelas penyimpanan adalah `meta`. | string | https://sls.console.alibabacloud.com/lognext/project/test-xxx/logsearch/test-alert-access?encode=base64&endTime=1617175989&queryString=KiB8IHNlbGVjdCBjb3VudCgxKSBhcy*******&queryTimeType=99&startTime=1617175089 |
dashboard_url | URL dasbor yang terkait dengan kueri. | string | https://sls.console.alibabacloud.com/next/project/myproject/dashboard/mydashboard |
role_arn | Nama ARN (Alibaba Cloud Resource Name) dari peran layanan yang digunakan. | string | acs:ram::117918634953****:role/aliyunslsalertmonitorrole |
FAQ
Lampiran
resultsstruktur[{ "store_type": "log", "region": "cn-hangzhou", "project": "sls-alert-test", "store": "test", "query": "* | select count(1) as cnt", "start_time": 1616741485, "end_time": 1616745085, "dashboard_id": "mydashboard", "raw_results": [{ "cnt": "4" }], "raw_result_count": 1, "fire_result": { "cnt": "4" }, "truncated": false, "role_arn": "" }]fire_resultsstruktur[{ "host": "example.com", "host__1": "example.com", "pv": "836", "slbid": "slb-02", "status": "200" }, { "host": "example.com", "host__1": "example.com", "pv": "836", "slbid": "slb-02", "status": "200" }]policystruktur{ "alert_policy_id": "sls.test-alert", "action_policy_id": "sls.test-action", "repeat_interval": "5m0s" }
Contoh
Contoh berikut menunjukkan cara mendefinisikan konten notifikasi menggunakan templat konten baru:
Konten Peringatan:
{ "alert_id": "test-alert", "alert_name": "PV/UV Alert", "project": "project-1", "status": "firing", "severity": 6, "labels": { "app": "nginx", "host": "host-1" }, "results": [ { "project": "project-1", "logstore": "logstore-1", "query": "* | select count(*) as pv" }, { "project": "project-2", "logstore": "logstore-2", "query": "* | select count(distinct user_id) as uv" } ] }Konfigurasi Templat Peringatan:
- ID Peringatan: {{ alert.alert_id }} - Nama Peringatan: {{ alert.alert_name }} - Proyek: {{ alert.project }} - Status: {% if alert.status == "firing" %}FIRING{% else %}RESOLVED{% endif %} - Label: {%- for key, val in alert.labels.items() %} - {{ key }}: {{ val }} {%- endfor %} - Kueri: {{ alert.results[0].query }}Hasil Output:
- ID Peringatan: test-alert - Nama Peringatan: PV/UV Alert - Proyek: project-1 - Status: FIRING - Label: - app: nginx - host: host-1 - Kueri: * | select count(*) as pv