Topik ini menjelaskan sintaks dari kondisi pemicu dalam aturan peringatan.
Anda dapat menggunakan variabel untuk merujuk field log dalam kondisi pemicu suatu aturan peringatan. Untuk mengevaluasi aturan peringatan, Simple Log Service melakukan kueri log berdasarkan pernyataan kueri yang ditentukan dalam aturan peringatan dan memeriksa apakah hasil kueri memenuhi kondisi pemicu. Jika kondisi pemicu terpenuhi, peringatan akan dipicu.
Batasan
Berikut adalah daftar batasan untuk kondisi pemicu:
Nomor negatif harus diapit dengan tanda kurung (), contohnya, x+(-100)<100.
Nilai numerik dikonversi menjadi bilangan floating-point 64-bit. Oleh karena itu, hasil evaluasi aturan peringatan mungkin tidak akurat jika melibatkan perbandingan.
Nama variabel hanya dapat berisi huruf dan angka serta harus dimulai dengan huruf.
Kondisi pemicu harus memiliki panjang 1 hingga 128 karakter.
Jika aturan peringatan dikaitkan dengan beberapa grafik, beberapa kueri dilakukan selama setiap evaluasi aturan peringatan. Dengan demikian, beberapa set entri log dikembalikan sebagai hasil kueri. Simple Log Service memilih satu entri log dari setiap set dan memeriksa apakah kombinasi entri log yang dipilih memenuhi kondisi pemicu. Untuk setiap evaluasi aturan peringatan, Simple Log Service memeriksa maksimal 1.000 kombinasi entri log. Peringatan dipicu jika salah satu kombinasi memenuhi kondisi pemicu.
Aturan peringatan dapat dikaitkan dengan maksimal tiga grafik atau pernyataan kueri.
Jika hasil dari kondisi pemicu adalah true, itu berarti kondisi pemicu terpenuhi. Dalam hal ini, peringatan dipicu. Sebagai contoh, jika kondisi pemicu adalah 100+100, hasilnya adalah 200 dan tidak ada peringatan yang dipicu.
Simple Log Service mencadangkan dua kata: true dan false. Ini juga mencadangkan dua karakter khusus: tanda dolar ($) dan titik (.). Kata-kata dan karakter khusus ini tidak dapat digunakan sebagai variabel.
Sintaks
Tabel berikut mencantumkan sintaks yang digunakan dalam kondisi pemicu.
Jenis sintaks | Operasi | Deskripsi |
Operator aritmatika | Mendukung operator penambahan (+), pengurangan (-), perkalian (*), pembagian (/), dan modulus (%).
|
|
Operator perbandingan | Mendukung delapan operator perbandingan: lebih besar dari (>), lebih besar dari atau sama dengan (>=), lebih kecil dari (<), lebih kecil dari atau sama dengan (<=), sama dengan (==), tidak sama dengan (!=), cocok (=~), dan tidak cocok (!~). Catatan
|
|
Operator logika | Mendukung operator AND (&&) dan OR (||). |
|
Operator not | Mendukung operator not (!). | !(a < 1 && a > 100) |
Konstanta numerik | Mendukung konstanta numerik. Simple Log Service mengonversi konstanta numerik menjadi bilangan floating-point 64-bit. | x > 100 |
Konstanta string | Mendukung konstanta string dalam format 'String', contohnya, 'string'. | foo == 'string' |
Konstanta Boolean | Mendukung true dan false. | (x > 100) == true |
Tanda kurung | Mendukung tanda kurung (). Anda dapat menggunakan tanda kurung untuk mengesampingkan urutan prioritas standar dan memaksa Simple Log Service mengevaluasi bagian yang diapit sebelum bagian yang tidak diapit. | x * (y + 100) > 100 |
Fungsi bernama contains | Mendukung fungsi contains. Fungsi contains memeriksa apakah sebuah string mengandung substring. Contohnya, contains(foo, 'hello') mengembalikan true jika string yang dirujuk oleh variabel foo mencakup substring hello. | contains(foo, 'hello') |
Kondisi pemicu dalam aturan peringatan yang dikaitkan dengan beberapa grafik
Sintaks
Aturan peringatan dapat dikaitkan dengan beberapa pernyataan kueri. Jika Anda ingin menggunakan variabel dalam kondisi pemicu untuk merujuk field dari hasil pernyataan kueri, Anda harus memberi awalan variabel dengan nomor seri pernyataan kueri dalam format $N.fieldname. Nomor seri pernyataan kueri sama dengan nomor seri grafik yang memplot hasil pernyataan kueri. Untuk informasi lebih lanjut, lihat Bagaimana cara melihat nomor seri grafik? Rentang nilai N adalah 0 hingga 2 karena setiap aturan peringatan dikaitkan dengan maksimal tiga pernyataan kueri. Contohnya, $0.foo merujuk nilai dari field foo dari hasil pernyataan kueri pertama. Jika aturan peringatan hanya dikaitkan dengan satu pernyataan kueri, Anda tidak perlu menentukan awalan dalam kondisi pemicu.
Evaluasi
Selama evaluasi aturan peringatan, jika beberapa kueri dilakukan dan beberapa set entri log dikembalikan sebagai hasil kueri, Simple Log Service hanya menggunakan hasil kueri yang field-nya dirujuk dalam kondisi pemicu. Contohnya, tiga set entri log dikembalikan. Jumlah entri log dalam set pertama adalah z, jumlah entri log dalam set kedua adalah y, dan jumlah entri log dalam set ketiga adalah z. Jika kondisi pemicu adalah $0.foo > 100 && $1.bar < 100, Simple Log Service hanya menggunakan set pertama dan set kedua selama evaluasi aturan peringatan. Simple Log Service memilih satu entri log dari masing-masing dua set dan memeriksa apakah kombinasi entri log yang dipilih memenuhi kondisi pemicu. Simple Log Service memeriksa x × y kombinasi. Jika hasil dari x × y melebihi 1.000, Simple Log Service hanya memeriksa 1.000 kombinasi. Jika salah satu kombinasi memenuhi kondisi pemicu, Simple Log Service memicu peringatan.
Implementasi Operator
Simple Log Service mengonversi semua nilai numerik menjadi bilangan floating-point 64-bit.
Konstanta string harus diapit dalam tanda kutip tunggal ('') atau tanda kutip ganda (""), contohnya, 'string' atau "string".
Nilai Boolean mencakup true dan false.
Operator | Implementasi | ||
Operasi antara variabel | Operasi antara konstanta non-string dan variabel | Operasi antara konstanta string dan variabel | |
Operator aritmatika: penambahan (+), pengurangan (-), perkalian (*), pembagian (/), dan modulus (%) | Sebelum operator aritmatika diterapkan, operand kiri dan kanan dikonversi menjadi bilangan floating-point 64-bit. | Tidak didukung. | |
Operator perbandingan: lebih besar dari (>), lebih besar dari atau sama dengan (>=), lebih kecil dari (<), lebih kecil dari atau sama dengan (<=), sama dengan (==), dan tidak sama dengan (!=) | Simple Log Service menggunakan aturan perbandingan berikut yang diurutkan berdasarkan urutan prioritas:
| Operand kiri dan kanan dikonversi menjadi bilangan floating-point 64-bit dan kemudian dibandingkan berdasarkan urutan numerik. | Operand kiri dan kanan dikonversi menjadi string dan kemudian dibandingkan berdasarkan urutan leksikografis. |
Operator ekspresi reguler: regex match (=~) dan regex not match (!~) | Sebelum operator pencocokan diterapkan, operand kiri dan kanan dikonversi menjadi string. | Tidak didukung. | Sebelum operator pencocokan diterapkan, operand kiri dan kanan dikonversi menjadi string. |
Operator logika: AND (&&) dan OR (||) | Operator logika tidak dapat diterapkan pada field log. Operand kiri dan kanan harus berupa ekspresi kondisional. Hasil yang dikembalikan oleh operator logika adalah tipe data Boolean. | ||
Operator not (!) | Operator not tidak dapat diterapkan pada field log. Operand kanan harus berupa ekspresi kondisional. Hasil yang dikembalikan oleh operator not adalah tipe data Boolean. | ||
Fungsi bernama contains | Sebelum fungsi contains dijalankan, parameter input dikonversi menjadi string. | Tidak didukung. | Sebelum fungsi contains dijalankan, parameter input dikonversi menjadi string. |
Tanda kurung () | Tanda kurung digunakan untuk mengesampingkan urutan prioritas standar dan memaksa Simple Log Service mengevaluasi bagian yang diapit sebelum bagian yang tidak diapit. | ||