Instruksi agregasi melakukan analisis statistik, pengurutan, dan pembatasan jumlah baris pada hasil kueri log.
stats
Instruksi stats melakukan analisis statistik pada log, mirip dengan fungsi agregat SQL seperti COUNT, SUM, dan AVG. Instruksi ini mengelompokkan dan mengagregasi bidang tertentu dalam data log.
-
Instruksi ini hanya berlaku untuk kueri dan analisis di LogStore, serta tidak dapat digunakan dalam skenario seperti transformasi data, konsumsi aturan Structured Process Language (SPL), Ingest Processors, atau konfigurasi Logtail.
-
Secara default, instruksi stats mengembalikan 100 hasil agregasi pertama. Untuk mengembalikan lebih banyak hasil, gunakan instruksi limit.
Sintaks
stats <output>=<aggOperator> by <group>,[<group>...]
Parameter
|
Parameter |
Tipe |
Wajib |
Deskripsi |
|
output |
String |
Ya |
Menentukan alias untuk bidang hasil statistik. |
|
aggOperator |
SQLExp |
Ya |
Fungsi agregat berikut didukung:
|
|
group |
String |
Tidak |
Menentukan dimensi untuk agregasi. Ini mirip dengan bidang GROUP BY dalam SQL. |
Contoh
-
Contoh 1: Hitung
pvdari log akses berdasarkanip.-
Pernyataan SPL
* | stats pv=count(*) by ip -
Data input
ip: 192.168.1.1 latencyMs: 10 ip: 192.168.1.1 latencyMs: 20 ip: 192.168.1.2 latencyMs: 10 -
Data output
ip: 192.168.1.2 pv: 1 ip: 192.168.1.1 pv: 2
-
-
Contoh 2: Hitung latency
min/maksuntuk semua alamatipdalamaccesslog.-
Pernyataan SPL
* | extend latencyMs=cast(latencyMs as bigint) | stats minLatencyMs=min(latencyMs), maxLatencyMs=max(latencyMs) by ip -
Data input
ip: 192.168.1.1 latencyMs: 10 ip: 192.168.1.1 latencyMs: 20 ip: 192.168.1.2 latencyMs: 10 -
Data output
ip: 192.168.1.2 minLatencyMs: 10 maxLatencyMs: 20 ip: 192.168.1.1 minLatencyMs: 10 maxLatencyMs: 10
-
-
Contoh 3: Hitung total
pvdalam log akses.-
Pernyataan SPL
* | stats pv=count(*) -
Data input
ip: 192.168.1.1 latencyMs: 10 ip: 192.168.1.1 latencyMs: 20 ip: 192.168.1.2 latencyMs: 10 -
Data output
pv: 3
-
sort
Instruksi sort mengurutkan hasil kueri berdasarkan nilai bidang atau hasil statistik dalam urutan menaik (asc) atau menurun (desc).
Instruksi ini hanya berlaku untuk kueri dan analisis di LogStore, serta tidak dapat digunakan dalam skenario seperti transformasi data, konsumsi aturan SPL, Ingest Processors, atau konfigurasi Logtail.
Sintaks
sort <field> [asc/desc] ,(<field> [asc/desc])
Parameter
|
Parameter |
Tipe |
Wajib |
Deskripsi |
|
field |
String |
Ya |
Menentukan bidang yang akan diurutkan. Tipe bidang berikut didukung:
|
|
asc/desc |
String |
Tidak |
|
Contoh
Urutkan accesslog berdasarkan latencyMs.
-
Pernyataan SPL
* | extend latencyMs=cast(latencyMs as bigint) | sort latencyMs desc -
Data input
ip: 192.168.1.1 latencyMs: 10 ip: 192.168.1.1 latencyMs: 20 ip: 192.168.1.2 latencyMs: 15 -
Data output
ip: 192.168.1.1 latencyMs: 20 ip: 192.168.1.2 latencyMs: 15 ip: 192.168.1.1 latencyMs: 10
limit
Instruksi limit membatasi jumlah baris log yang dikembalikan dalam hasil kueri untuk mencegah masalah performa akibat set hasil yang terlalu besar.
-
Instruksi ini hanya berlaku untuk kueri dan analisis di LogStore, serta tidak dapat digunakan dalam skenario seperti transformasi data, konsumsi aturan SPL, Ingest Processors, atau konfigurasi Logtail.
-
Jika Anda tidak menggunakan instruksi sort untuk menentukan aturan pengurutan, output instruksi limit akan berada dalam urutan acak karena urutan alami log tidak dijamin selama penyimpanan.
Sintaks
limit (<offset>,) <size>
Parameter
|
Parameter |
Tipe |
Wajib |
Deskripsi |
|
offset |
Integer |
Tidak |
Melewati |
|
size |
Integer |
Ya |
Batas jumlah baris. |
Contoh
Urutkan log akses berdasarkan bidang latencyMs, lalu ambil baris pertama.
-
Pernyataan SPL
* | extend latencyMs=cast(latencyMs as bigint) | sort latencyMs | limit 1 -
Data input
ip: 192.168.1.1 latencyMs: 10 ip: 192.168.1.1 latencyMs: 20 ip: 192.168.1.2 latencyMs: 15 -
Data output
ip: 192.168.1.1 latencyMs: 20