Topik ini menjelaskan variabel dalam versi baru templat peringatan dan cara mereferensikannya.
Sintaks referensi
-
Saat mereferensikan suatu variabel, nama variabel tersebut harus persis sama.
-
Jika variabel tidak ada atau direferensikan secara salah, SLS akan menggantinya dengan string kosong secara default.
-
Jika nilai yang direferensikan berupa objek, SLS akan mengonversinya menjadi string JSON.
-
-
Nama variabel harus terdiri dari huruf, angka, dan garis bawah (_), serta tidak boleh diawali dengan angka.
-
Jika nama variabel memenuhi ketentuan ini, Anda dapat mengambil nilainya menggunakan notasi titik, seperti
{{alert.xxx}}. -
Jika nama variabel tidak memenuhi ketentuan ini—misalnya mengandung karakter khusus seperti
__tag__:__namespace__—Anda harus menggunakan notasi kurung siku untuk mengambil nilainya:{{alert.annotations["__tag__:__namespace__"] }}.
-
Saat mengonfigurasi kebijakan tindakan, Anda harus memilih templat peringatan. Templat peringatan menentukan konten dan subjek pemberitahuan peringatan. Di bidang Content dan Subject/Subject, Anda dapat mereferensikan variabel menggunakan sintaks {{ alert.xxx }}. Saat SLS mengirim pemberitahuan peringatan, variabel dalam Content dan Subject/Subject akan diganti dengan nilai aktualnya. Misalnya, {{ alert.project }} diganti dengan nama Proyek yang berisi aturan peringatan tersebut.

Selain mereferensikan variabel secara langsung, Anda juga dapat menggunakan struktur kontrol alur dan fungsi bawaan untuk memanipulasi serta memprosesnya. Untuk informasi lebih lanjut tentang sintaks templat dan fungsi bawaan, lihat Sintaks Templat Konten (Baru) dan Fungsi Bawaan Templat.
Atribut peringatan
|
Parameter |
Deskripsi |
Type |
Nilai |
Penggunaan |
|
aliuid |
ID akun Alibaba Cloud yang terkait dengan proyek. |
string |
117918634953**** |
Aturan peringatan untuk akun |
|
alert_instance_id |
ID unik untuk instans peringatan ini. |
string |
ee16a8f435485f3f-5be6b81edc520-3d6**** |
ID instans adalah |
|
alert_id |
ID aturan peringatan, yang unik dalam satu proyek. |
string |
alert-12345 |
ID aturan peringatan adalah |
|
alert_name |
Nama aturan peringatan. |
string |
Test alert rule |
Aturan peringatan |
|
alert_type |
Jenis peringatan.
|
string |
sls_alert |
Jenis peringatan adalah |
|
region |
Wilayah tempat peringatan dipicu. |
string |
cn-hangzhou |
Peringatan dipicu di wilayah |
|
project |
Proyek tempat aturan peringatan berada. |
string |
my-project |
Aturan peringatan di proyek |
|
next_eval_interval |
Interval sebelum evaluasi berikutnya, dalam detik. |
int |
300 |
Evaluasi berikutnya akan terjadi dalam |
|
alert_time |
Waktu evaluasi saat ini. |
int |
1616744734 |
Waktu evaluasi peringatan saat ini adalah |
|
fire_time |
Waktu pertama kali peringatan dipicu. |
int |
1616059834 |
Peringatan pertama kali dipicu pada |
|
status |
Status peringatan.
|
string |
firing |
Status peringatan adalah |
|
resolve_time |
Waktu penyelesaian peringatan.
|
int |
0 |
Peringatan diselesaikan pada |
|
severity |
Tingkat keparahan peringatan.
|
int |
10 |
Tingkat keparahan peringatan adalah |
|
labels |
Peta pasangan kunci-nilai yang mendefinisikan label peringatan. |
map |
{"env":"test"} |
Label peringatan adalah |
|
annotations |
Peta pasangan kunci-nilai yang memberikan informasi tambahan tentang peringatan. |
map |
{ "title": "Alert title","desc": "Alert description" } |
Anotasi peringatan adalah |
|
results |
Larik yang berisi data kueri dan hasil dari evaluasi peringatan. Untuk detail struktur data, lihat Struktur QueryData. |
array |
Lihat apendiks di akhir topik ini. |
Waktu mulai kueri pertama adalah |
|
fire_results |
Data yang memicu peringatan, yaitu hasil operasi himpunan. Maksimal 100 entri data dikembalikan. Jika nilai variabel fire_results melebihi 2 KB dan konten bidang hasil kueri melebihi 1 KB, data berlebih akan dipotong. Untuk informasi lebih lanjut, lihat Bagaimana cara menangani tampilan log yang tidak lengkap dalam pemberitahuan peringatan? |
array |
Lihat apendiks di akhir topik ini. |
Data yang memicu peringatan adalah |
|
fire_results_count |
Jumlah total entri data yang memicu peringatan. Nilai ini bisa lebih dari 100. Misalnya, jumlah total entri setelah operasi Produk Kartesius. |
int |
3 |
Jumlah total entri data yang memicu peringatan adalah |
|
condition |
Kondisi pemicu yang dievaluasi, di mana variabel diganti dengan nilai yang memicu peringatan dan diapit tanda kurung siku ( |
string |
|
Kondisi pemicu adalah |
|
raw_condition |
Kondisi pemicu asli, di mana variabel tidak diganti dengan nilai aktualnya. Formatnya adalah |
string |
|
Kondisi pemicu asli adalah |
|
policy |
Objek yang berisi detail kebijakan peringatan atau kebijakan tindakan yang dipicu. Untuk detail struktur data, lihat Struktur Kebijakan. |
map |
Lihat apendiks di akhir topik ini. |
ID kebijakan peringatan adalah |
|
dashboard |
Nama dasbor yang terkait dengan peringatan. |
string |
mydashboard |
Dasbor terkait adalah |
|
alert_url |
URL langsung ke halaman detail peringatan di konsol. |
string |
https://sls.console.alibabacloud.com/lognext/project/test-xxxx/alert/alert-1617164106-940166 |
URL peringatan adalah |
|
query_url |
URL ke halaman pencarian dan analitik, telah diisi sebelumnya dengan kueri pertama dari evaluasi peringatan. |
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 untuk kueri pertama adalah |
|
alert_history_dashboard_url |
URL dasbor Statistik Riwayat Peringatan. |
string |
https://sls.console.alibabacloud.com/lognext/project/test-xx/dashboard/internal-alert-analysis |
URL dasbor Statistik Riwayat Peringatan adalah |
|
dashboard_url |
URL dasbor yang terkait dengan peringatan. |
string |
https://sls.console.alibabacloud.com/next/project/myproject/dashboard/mydashboard |
URL dasbor terkait adalah |
|
fingerprint |
Sidik jari peringatan. Untuk informasi selengkapnya, lihat Menghapus duplikat peringatan berdasarkan sidik jari. |
string |
478325709134bc5c |
Sidik jari peringatan adalah |
|
signin_url |
URL untuk melihat detail peringatan tanpa login ke konsol. Untuk informasi lebih lanjut, lihat Lihat detail peringatan dalam mode tanpa login. |
string |
https://sls.console.alibabacloud.com/console/AlertAjax/slsSignIn.json?token=xxxx |
|
Struktur kebijakan
Tabel berikut mencantumkan variabel yang dapat Anda referensikan dalam policy.
|
Parameter |
Deskripsi |
Tipe |
Contoh |
|
alert_policy_id |
ID kebijakan peringatan. |
string |
sls.test-alert |
|
action_policy_id |
ID kebijakan tindakan yang ditentukan dalam aturan peringatan. Variabel ini hanya tersedia jika kebijakan peringatan menggunakan Dynamic Action Policy. |
string |
sls.test-action |
|
repeat_interval |
Interval pengulangan. Variabel ini hanya tersedia jika kebijakan peringatan menggunakan Dynamic Action Policy. |
string |
4h |
Struktur QueryData
Tabel berikut menjelaskan bidang dalam variabel results.
|
Parameter |
Deskripsi |
Tipe |
Nilai |
|
store_type |
Jenis penyimpanan. Nilai yang valid:
|
string |
log |
|
region |
Wilayah penyimpanan target. Bidang ini kosong jika store_type adalah |
string |
cn-hangzhou |
|
Project |
Proyek toko target. Bidang ini kosong jika store_type adalah |
string |
sls-test-alert |
|
store |
Nama penyimpanan target. |
string |
test-LogStore |
|
query |
Pernyataan kueri. |
string |
error | select count(1) as cnt |
|
start_time |
Awal rentang waktu kueri, dalam bentuk Unix timestamp dalam detik. Bidang ini kosong jika store_type adalah |
int |
1616741485 |
|
end_time |
Akhir rentang waktu kueri, dalam bentuk Unix timestamp dalam detik. Bidang ini kosong jika store_type adalah |
int |
1616745085 |
|
raw_results |
Larik berisi maksimal 100 catatan hasil kueri. Jika ukuran nilai raw_results melebihi 2 KB, atau jika konten satu bidang melebihi 1 KB, data akan dipotong. |
array |
|
|
raw_results_count |
Jumlah total catatan yang dikembalikan oleh kueri, yang bisa lebih dari 100. |
int |
20 |
|
fire_result |
Catatan pertama dalam set hasil yang memicu peringatan. |
map |
|
|
query_url |
URL konsol untuk melihat hasil kueri. Bidang ini kosong jika store_type adalah |
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 Sumber Daya Alibaba Cloud (ARN) dari peran layanan. |
string |
acs:ram::117918634953****:role/aliyunslsalertmonitorrole |
FAQ
Apendiks
-
resultsstructure[{ "store_type": "Logstore", "region": "China (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_resultsstructure[{ "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" }] -
policystructure{ "alert_policy_id": "sls.test-alert", "action_policy_id": "sls.test-action", "repeat_interval": "5m0s" }
Contoh
Contoh ini menunjukkan cara menentukan konten notifikasi menggunakan templat konten:
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:
- Alert ID: {{ alert.alert_id }} - Alert Name: {{ alert.alert_name }} - Project: {{ alert.project }} - Status: {% if alert.status == "firing" %}FIRING{% else %}RESOLVED{% endif %} - Labels: {%- for key, val in alert.labels.items() %} - {{ key }}: {{ val }} {%- endfor %} - Query: {{ alert.results[0].query }}Hasil output:
- Alert ID: test-alert - Alert Name: PV/UV Alert - Project: project-1 - Status: FIRING - Labels: - app: nginx - host: host-1 - Query: * | select count(*) as pv