Topik ini menjelaskan variabel yang tersedia dalam templat peringatan baru serta cara menggunakannya.
Referensi variabel
-
Nama variabel harus sesuai secara eksak.
-
Jika variabel tidak ada atau referensinya tidak valid, nilai default-nya adalah string kosong.
-
Objek yang direferensikan dikonversi menjadi string JSON.
-
-
Nama variabel dapat berisi huruf, angka, dan garis bawah (_) tetapi tidak boleh diawali dengan angka.
-
Jika nama variabel mengikuti aturan ini, Anda dapat mengambil nilainya menggunakan notasi titik, misalnya
{{alert.xxx}}. -
Jika nama variabel berisi karakter khusus, seperti
__tag__:__namespace__, Anda harus menggunakan notasi kurung siku untuk mengambil nilainya, misalnya{{alert.annotations["__tag__:__namespace__"]}}.
-
Saat mengonfigurasi kebijakan aksi, Anda harus memilih templat peringatan. Templat tersebut menentukan konten dan subjek notifikasi. Di bidang Send Content dan Subject/Title, Anda dapat mereferensikan variabel templat menggunakan sintaks {{ alert.xxx }}. Saat Simple Log Service (SLS) mengirimkan pemberitahuan peringatan, variabel dalam Send Content dan Subject/Title diganti dengan nilai aktualnya. Misalnya, Simple Log Service (SLS) mengganti {{ alert.project }} dengan nama Project tempat aturan peringatan berada.
Sebagai contoh, dalam templat peringatan untuk saluran DingTalk, Anda dapat mengatur Subject menjadi SLS Alert. Di Content, Anda dapat menggunakan variabel {{ alert.aliuid }}, {{ alert.project }}, {{ alert.alert_name }}, dan {{ alert.severity }} untuk mengambil ID akun, nama Project, nama aturan peringatan, dan tingkat keparahan, masing-masing.
Selain mereferensikan variabel secara langsung, Anda juga dapat menggunakan alur kendali dan fungsi bawaan untuk memproses data variabel. Lihat Sintaks Templat Peringatan (Baru) dan Fungsi Bawaan Templat untuk informasi selengkapnya mengenai sintaks templat dan fungsi bawaan.
Atribut peringatan
|
Parameter |
Deskripsi |
Tipe |
Nilai |
Contoh referensi |
|
aliuid |
ID akun Alibaba Cloud untuk Project tersebut. |
string |
117918634953**** |
Aturan peringatan untuk pengguna |
|
alert_instance_id |
ID instans yang memicu peringatan. |
string |
ee16a8f435485f3f-5be6b81edc520-3d6**** |
ID instans adalah |
|
alert_id |
ID unik aturan peringatan dalam Project. |
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 |
Project tempat aturan peringatan berada. |
string |
my-project |
Aturan peringatan dipicu di Project |
|
next_eval_interval |
Interval evaluasi berikutnya dalam detik. |
int |
300 |
Evaluasi berikutnya dalam |
|
alert_time |
Timestamp UTC dari evaluasi saat ini. |
int |
1616744734 |
Waktu evaluasi saat ini adalah |
|
fire_time |
Timestamp UTC saat peringatan pertama kali dipicu. |
int |
1616059834 |
Peringatan pertama kali dipicu pada |
|
status |
Status peringatan saat ini.
|
string |
firing |
Status peringatan adalah |
|
resolve_time |
Timestamp UTC saat peringatan diselesaikan.
|
int |
0 |
Peringatan diselesaikan pada |
|
severity |
Tingkat keparahan peringatan.
|
int |
10 |
Tingkat keparahan peringatan adalah |
|
labels |
Kumpulan label pasangan kunci-nilai yang ditentukan pengguna. |
map |
{"env":"test"} |
Label peringatan adalah |
|
annotations |
Kumpulan anotasi pasangan kunci-nilai yang ditentukan pengguna. |
map |
{ "title": "Alert title","desc": "Alert description" } |
Anotasi peringatan adalah |
|
results |
Array parameter kueri dan hasil antara. Untuk informasi lebih lanjut tentang nilai variabel ini, lihat struktur QueryData. |
array |
Lihat apendiks di akhir topik ini. |
Waktu mulai kueri pertama adalah |
|
fire_results |
Data yang memicu peringatan. Ini adalah hasil operasi himpunan. Maksimal 100 baris dikembalikan. Jika ukuran variabel fire_results melebihi 2 KB, atau jika konten satu bidang melebihi 1 KB, data akan dipotong. Untuk informasi tentang cara menangani data yang terpotong, lihat Apa yang harus saya lakukan jika terlalu banyak log memicu peringatan dan notifikasi menampilkan informasi yang tidak lengkap? |
array |
Lihat apendiks di akhir topik ini. |
Data yang memicu peringatan adalah |
|
fire_results_count |
Jumlah total baris data yang memicu peringatan. Nilai ini bisa lebih besar dari 100, misalnya setelah operasi Produk Kartesius. |
int |
3 |
Peringatan dipicu oleh |
|
condition |
Ekspresi evaluasi yang memicu peringatan. Dalam ekspresi ini, variabel diganti dengan nilai pemicu aktualnya, diapit tanda kurung siku []. Formatnya adalah |
string |
|
Ekspresi evaluasi peringatan adalah |
|
raw_condition |
Ekspresi evaluasi asli di mana variabel tidak diganti dengan nilai aktualnya. Formatnya adalah |
string |
|
Ekspresi evaluasi asli adalah |
|
policy |
Kebijakan peringatan atau kebijakan aksi. Untuk informasi lebih lanjut tentang nilai variabel ini, lihat struktur Policy. |
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 ke halaman detail peringatan. |
string |
https://sls.console.alibabacloud.com/lognext/project/test-xxxx/alert/alert-1617164106-940166 |
URL peringatan adalah |
|
query_url |
URL ke halaman pencarian kueri pertama. |
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 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 Mendeduplikasi peringatan berdasarkan sidik jari peringatan. |
string |
478325709134bc5c |
Sidik jari peringatan adalah |
|
signin_url |
URL untuk melihat detail peringatan tanpa masuk ke konsol. Untuk informasi lebih lanjut, lihat Melihat detail peringatan tanpa masuk. |
string |
https://sls.console.alibabacloud.com/console/AlertAjax/slsSignIn.json?token=xxxx |
|
Struktur kebijakan
Tabel berikut mencantumkan variabel yang tersedia dalam policy.
|
Parameter |
Deskripsi |
Tipe |
Contoh nilai |
|
alert_policy_id |
ID kebijakan peringatan. |
string |
sls.test-alert |
|
action_policy_id |
ID kebijakan aksi yang dikonfigurasi untuk aturan peringatan. Variabel ini hanya tersedia jika aturan peringatan menggunakan Dynamic Action Policy. |
string |
sls.test-action |
|
repeat_interval |
Interval pengiriman ulang notifikasi untuk peringatan aktif. Variabel ini hanya tersedia jika aturan peringatan menggunakan Dynamic Action Policy. |
string |
4h |
Struktur data kueri
Tabel ini menjelaskan variabel yang tersedia dalam variabel results.
|
Parameter |
Deskripsi |
Tipe |
Nilai |
|
store_type |
Jenis penyimpanan. Nilai yang valid adalah:
|
string |
log |
|
region |
Wilayah tempat penyimpanan tujuan berada. Variabel ini kosong jika nilai |
string |
cn-hangzhou |
|
project |
Project tempat penyimpanan tujuan berada. Variabel ini kosong jika nilai |
string |
sls-test-alert |
|
store |
Nama toko tujuan. |
string |
test-LogStore |
|
query |
Pernyataan kueri. |
string |
error | select count(1) as cnt |
|
start_time |
Waktu mulai kueri, dinyatakan sebagai timestamp UTC. Variabel ini kosong jika nilai |
int |
1616741485 |
|
end_time |
Waktu selesai kueri, dinyatakan sebagai timestamp UTC. Variabel ini kosong jika nilai |
int |
1616745085 |
|
raw_results |
Array hasil kueri, berisi maksimal 100 baris. Jika variabel raw_results melebihi 2 KB, atau jika satu bidang dalam hasil melebihi 1 KB, data berlebih akan dipotong. |
array |
|
|
raw_results_count |
Jumlah total baris dalam set hasil, yang bisa lebih dari 100. |
int |
20 |
|
fire_result |
Catatan pertama dari hasil pemicu peringatan. Parameter ini hanya berisi catatan pertama, meskipun set hasil berisi lebih dari satu. |
map |
|
|
query_url |
URL halaman kueri di konsol. Variabel ini kosong jika nilai |
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
-
Contoh
results:[{ "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": "" }] -
Contoh
fire_results:[{ "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" }] -
Contoh
policy:{ "alert_policy_id": "sls.test-alert", "action_policy_id": "sls.test-action", "repeat_interval": "5m0s" }
Contoh
Contoh ini 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:
- 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