All Products
Search
Document Center

Simple Log Service:Tentukan ekspresi evaluasi

Last Updated:Jun 21, 2026

Dalam aturan alert, hasil eksekusi ekspresi evaluasi digunakan untuk memeriksa apakah kondisi pemicu alert terpenuhi dan mengevaluasi tingkat keparahan dinamis alert tersebut. Topik ini menjelaskan cara menggunakan ekspresi evaluasi.

Ikhtisar

Dalam aturan alert, Anda dapat menetapkan hasil pernyataan kueri sebagai input dan bidang dalam hasil operasi set sebagai variabel. Jika ekspresi evaluasi mengembalikan nilai true, alert akan dipicu.

Batasan

Ekspresi evaluasi yang dapat Anda tentukan dalam aturan alert memiliki batasan berikut:

  • Bilangan negatif harus diapit tanda kurung (). Contoh: x+(-100)<100.

  • Nilai numerik dikonversi menjadi bilangan titik mengambang 64-bit. Jika bilangan tersebut digunakan dalam perbandingan, kesalahan mungkin terjadi. Misalnya, Anda dapat membandingkan dua bilangan untuk memeriksa apakah nilainya sama.

  • Nama variabel hanya boleh berisi huruf dan angka, serta harus diawali dengan huruf.

  • Panjang ekspresi evaluasi harus antara 1 hingga 128 karakter.

  • Alert hanya dipicu ketika ekspresi evaluasi mengembalikan nilai true dan jumlah kali berturut-turut kondisi pemicu terpenuhi mencapai nilai parameter Threshold of Continuous Triggers. Misalnya, jika ekspresi evaluasi adalah 100+100, hasil perhitungannya adalah 200, yang bukan nilai true. Dalam kasus ini, alert tidak dipicu.

  • true, false, tanda dolar ($), dan titik (.) merupakan kata tercadang untuk ekspresi evaluasi. Anda tidak dapat menggunakan kata tercadang tersebut sebagai variabel.

Sintaksis

Tabel berikut menjelaskan jenis sintaksis yang didukung oleh ekspresi evaluasi dalam aturan alert.

Catatan

Nama bidang adalah nama bidang yang dikembalikan dalam set hasil. Kami menyarankan Anda menggunakan string sebagai nama bidang. Hindari menggunakan nama bidang yang hanya terdiri dari angka atau nama bidang yang mengandung karakter khusus. Karakter khusus termasuk tanda persen (%). Jika nama bidang mengandung karakter khusus atau hanya terdiri dari angka, nama bidang tersebut harus diapit tanda kurung siku []. Contoh:

  • [5xx percentage (%)] > 20

  • [404] > 20

Jenis sintaksis

Operator

Metode operasi

Contoh

Operasi antar variabel

Operasi antara konstanta non-string dan variabel

Operasi antara konstanta string dan variabel

Operator aritmetika

penjumlahan (+), pengurangan (-), perkalian (*), pembagian (/), dan modulus (%)

Sebelum operator aritmetika diterapkan, operan kiri dan kanan dikonversi menjadi bilangan titik mengambang 64-bit.

Sebelum operator aritmetika diterapkan, operan kiri dan kanan dikonversi menjadi bilangan titik mengambang 64-bit.

Tidak didukung.

  • x * 100 + y > 200

  • x % 10 > 5

Operator perbandingan

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 prioritas:

  1. Operan kiri dan kanan dikonversi menjadi bilangan titik mengambang 64-bit, lalu dibandingkan berdasarkan urutan numerik. Jika konversi gagal, aturan dengan prioritas berikutnya diterapkan.

  2. Operan kiri dan kanan dikonversi menjadi string, lalu dibandingkan berdasarkan urutan alfabetis.

Operan kiri dan kanan dikonversi menjadi bilangan titik mengambang 64-bit, lalu dibandingkan.

Operan kiri dan kanan dikonversi menjadi string, lalu dibandingkan berdasarkan urutan alfabetis.

  • x >= 0

  • x < 100

  • x <= 100

  • x == 100

  • x == "foo"

  • (x > 100) == true

    Catatan

    Konstanta Boolean didukung.

Operator ekspresi reguler:

regex match (=~) dan regex not match (!~)

Catatan
  • Tanda garis miring terbalik (\) harus di-escape.

  • Sintaksis Regular Expression 2 (RE2) digunakan. Untuk informasi selengkapnya, lihat Syntax.

Sebelum operator ekspresi reguler diterapkan, operan kiri dan kanan dikonversi menjadi string.

Tidak didukung.

Sebelum operator ekspresi reguler diterapkan, operan kiri dan kanan dikonversi menjadi string.

Regex match: x =~ "\\w+".

Operator logika

Operator logika:

AND (&&) dan OR (||)

Operan kiri dan kanan harus berupa sub-ekspresi, dan hasil operasinya harus berupa Nilai Boolean. Misalnya, ekspresi evaluasi adalah $0.success_ratio < 90 && $1.Average response time > 60.

Operan kiri dan kanan harus berupa sub-ekspresi, dan hasil operasinya harus berupa Nilai Boolean. Misalnya, ekspresi evaluasi adalah $0.success_ratio < 90 && $1.Average response time > 60.

Operan kiri dan kanan harus berupa sub-ekspresi, dan hasil operasinya harus berupa Nilai Boolean. Misalnya, ekspresi evaluasi adalah $0.success_ratio < 90 && $1.Average response time > 60.

  • x >= 0 && y <= 100

  • x > 0 || y >0

Operator Not

Operator Not (!)

Operan yang diperlukan harus berupa sub-ekspresi, dan hasil operasinya harus berupa Nilai Boolean. Misalnya, ekspresi evaluasi adalah !($0.success_ratio < 90).

Anda tidak dapat langsung menggunakan operator ini untuk bidang dalam hasil operasi set.

Operan yang diperlukan harus berupa sub-ekspresi, dan hasil operasinya harus berupa Nilai Boolean. Misalnya, ekspresi evaluasi adalah !($0.success_ratio < 90).

Anda tidak dapat langsung menggunakan operator ini untuk bidang dalam hasil operasi set.

Operan yang diperlukan harus berupa sub-ekspresi, dan hasil operasinya harus berupa Nilai Boolean. Misalnya, ekspresi evaluasi adalah !($0.success_ratio < 90).

Anda tidak dapat langsung menggunakan operator ini untuk bidang dalam hasil operasi set.

!(a < 1 && a > 100)

Fungsi contains

Fungsi contains

Sebelum fungsi contains dijalankan, operan kiri dan kanan dikonversi menjadi string.

Tidak didukung.

Sebelum fungsi contains dijalankan, operan kiri dan kanan dikonversi menjadi string.

contains(foo, 'hello'): Jika mengembalikan true, string foo berisi substring hello.

Tanda kurung

Tanda kurung ()

Tanda kurung () digunakan untuk mengubah urutan presedensi standar dalam perhitungan.

Tanda kurung () digunakan untuk mengubah urutan presedensi standar dalam perhitungan.

Tanda kurung () digunakan untuk mengubah urutan presedensi standar dalam perhitungan.

x * (y + 100) > 100

Evaluasi hasil operasi set

Simple Log Service mendukung pemantauan terkait hingga tiga set data dan mengevaluasi hasil operasi set.

Hasil operasi set

Dalam aturan alert, Anda dapat menetapkan hasil pernyataan kueri sebagai input dan bidang dalam hasil operasi set sebagai variabel untuk mengevaluasi apakah alert dapat dipicu. Untuk informasi selengkapnya tentang operasi set, lihat Mengorelasikan beberapa hasil analisis kueri. Tabel berikut menjelaskan hasil operasi set.

Catatan

Hasil operasi set yang dilakukan pada hasil kueri dan analisis dievaluasi. Operasi set mencakup operasi CROSS JOIN dan LEFT JOIN.

  • Jika hasil kueri dan analisis tidak mengandung bidang duplikat, Anda dapat mereferensikan bidang dalam ekspresi evaluasi tanpa perlu menambahkan awalan ke bidang tersebut. Awalan tersebut meliputi $0, $1, dan $2. Contoh: name == 'sls'.

  • Jika hasil kueri dan analisis mengandung bidang duplikat, Anda dapat mereferensikan bidang dalam ekspresi evaluasi dengan menambahkan awalan ke bidang tersebut. Awalan tersebut meliputi $0, $1, dan $2. Contoh: $0.name == 'sls' || $1.name == 'ecs'.

Kategori

Subkategori

Deskripsi

Log

Pernyataan kueri yang tidak mengandung SELECT

Hanya pernyataan pencarian yang digunakan untuk mengkueri log.

Saat Anda menetapkan ekspresi evaluasi untuk kondisi pemicu, Anda dapat mereferensikan bidang yang terdapat dalam hasil kueri.

Pernyataan kueri yang mengandung SELECT * FROM log

Saat Anda menetapkan ekspresi evaluasi untuk kondisi pemicu, Anda dapat mereferensikan bidang yang telah diaktifkan Enable Analytics-nya.

Pernyataan kueri yang mengandung SELECT * FROM (SELECT...)

Saat Anda menetapkan ekspresi evaluasi untuk kondisi pemicu, Anda dapat mereferensikan bidang yang terdapat dalam subkueri SELECT yang ditentukan.

Metric

Pernyataan kueri yang mengandung SELECT promql(...)

Fungsi promql_query(string) dan promql_query_range(string, string) selalu mengembalikan bidang berikut: metric, labels, time, dan value. Simple Log Service memperluas bidang labels dalam format map.

Saat Anda menetapkan ekspresi evaluasi untuk kondisi pemicu, Anda dapat mereferensikan bidang berikut: metric, labels, time, dan value. Anda juga dapat mereferensikan sub-bidang dari bidang labels.

Pernyataan kueri yang mengandung SELECT a, b FROM (SELECT promql(...))

Saat Anda menetapkan ekspresi evaluasi untuk kondisi pemicu, Anda dapat mereferensikan bidang yang telah diaktifkan Enable Analytics-nya.

Pernyataan kueri yang mengandung SELECT * FROM log

Saat Anda menetapkan ekspresi evaluasi untuk kondisi pemicu, Anda dapat mereferensikan bidang yang telah diaktifkan Enable Analytics-nya.

Data resource

Tidak ada

Nilai bidang dalam data resource dapat berupa tipe string, bilangan titik mengambang, atau numerik. Tipe JSON tidak didukung.

Saat Anda menetapkan ekspresi evaluasi untuk kondisi pemicu, Anda dapat mereferensikan ID bidang dalam data resource.

Konfigurasikan kondisi pemicu

Dalam kondisi pemicu, ekspresi evaluasi digunakan untuk mengevaluasi hasil operasi set. Jika ekspresi evaluasi mengembalikan nilai true, alert akan dipicu. Kondisi pemicu mendukung opsi berikut:

  • Data dikembalikan: Memeriksa jumlah baris dalam hasil operasi set. Kondisi terpenuhi jika setidaknya satu baris dikembalikan.

    image

  • Hasil kueri berisi: Memeriksa jumlah baris dalam hasil operasi set. Operator yang didukung meliputi lebih besar dari, lebih kecil dari, dan sama dengan. Kondisi terpenuhi jika jumlah baris memenuhi kondisi yang ditentukan. Misalnya, jika set hasil berisi 4 baris dan kondisi pemicu adalah Hasil kueri berisi > 10, kondisi tidak terpenuhi dan alert tidak dihasilkan.

    image

  • Data sesuai dengan ekspresi: Memeriksa konten baris dalam hasil operasi set. Kondisi terpenuhi jika konten setidaknya satu baris sesuai dengan ekspresi evaluasi. Misalnya, jika set hasil berisi satu baris (pv=900) dan kondisi pemicu adalah Data sesuai dengan ekspresi, pv > 1000, kondisi tidak terpenuhi dan alert tidak dihasilkan.

    image

  • Hasil kueri berisi dan sesuai: Memeriksa jumlah dan konten baris dalam hasil operasi set. Alert hanya dipicu ketika jumlah baris tertentu sesuai dengan ekspresi evaluasi. Misalnya, jika set hasil memiliki empat baris (pv=900, pv=1100, pv=1200, pv=1001) dan kondisi pemicu adalah Hasil kueri berisi dan sesuai > 3, pv > 1000, kondisi terpenuhi dan alert dihasilkan.

    image

Contoh

Contoh 1

Jika tingkat keberhasilan permintaan kurang dari 90% dan waktu respons rata-rata permintaan lebih dari 60 detik dalam periode 15 menit, alert akan dipicu. Detail konfigurasi:

Query Statistics:

  • s0: Hitung tingkat keberhasilan permintaan, yang ditunjukkan oleh success_ratio. Pernyataan kueri: * | select round(sum(if(status < 300, 1, 0)) * 100.0 / count(1) , 2) as success_ratio.

  • s1: Hitung waktu respons rata-rata permintaan per menit. Pernyataan kueri: * | select date_format(date_trunc('minute',__time__), '%m-%d %H:%i') as t,avg(request_time) as "Average response time(s)" group by t order by t asc limit 2000

Trigger Condition: Ekspresi evaluasi dikonfigurasikan sebagai: $0.success_ratio < 90 && $1.[Average response time(s)] > 60

image

Contoh 2

Jika jumlah kali kode status HTTP 500 dikembalikan melebihi 10 dalam periode 15 menit, alert akan dipicu. Detail konfigurasi:

Statistik Kueri: Hitung kemunculan setiap kode status. Pernyataan kueri: * | select status, COUNT(*) as total group by status

Trigger Condition: Ekspresi evaluasi dikonfigurasikan sebagai: status == 500 && total > 10

image