Topik ini menjelaskan cara menggunakan instruksi agregasi dan menyediakan contoh penggunaannya.
stats
Gunakan instruksi stats untuk analisis statistik log. Fungsinya mirip dengan fungsi agregat dalam SQL seperti COUNT, SUM, dan AVG. Instruksi ini melakukan operasi statistik, pengelompokan, dan agregasi pada bidang tertentu dalam data log.
Instruksi ini hanya digunakan untuk analisis kueri di Log Service. Tidak berlaku untuk skenario seperti transformasi data, konsumsi aturan Bahasa Proses Terstruktur (SPL), prosesor tulis, atau konfigurasi Logtail.
Secara default, instruksi stats mengembalikan 100 hasil agregasi pertama. Untuk mengembalikan lebih banyak hasil, gunakan instruksi limit.
Sintaksis
stats <output>=<aggOperator> by <group>,[<group>...]Parameter
Parameter | Tipe | Diperlukan | 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 ipData masukan
ip: 192.168.1.1 latencyMs: 10 ip: 192.168.1.1 latencyMs: 20 ip: 192.168.1.2 latencyMs: 10Data keluaran
ip: 192.168.1.2 pv: 1 ip: 192.168.1.1 pv: 2
Contoh 2: Hitung
min/makslatensi untuk semua alamatipdalamaccesslog.Pernyataan SPL
* | extend latencyMs=cast(latencyMs as bigint) | stats minLatencyMs=min(latencyMs), maxLatencyMs=max(latencyMs) by ipData masukan
ip: 192.168.1.1 latencyMs: 10 ip: 192.168.1.1 latencyMs: 20 ip: 192.168.1.2 latencyMs: 10Data keluaran
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 masukan
ip: 192.168.1.1 latencyMs: 10 ip: 192.168.1.1 latencyMs: 20 ip: 192.168.1.2 latencyMs: 10Data keluaran
pv: 3
sort
Instruksi sort mengurutkan hasil kueri. Anda dapat mengurutkan nilai bidang atau hasil statistik dalam urutan menaik (asc) atau menurun (desc). Ini adalah alat penting untuk analisis log yang membantu Anda dengan cepat menemukan data utama dan menghasilkan laporan terurut.
Instruksi ini hanya digunakan untuk analisis kueri di Log Service. Tidak berlaku untuk skenario seperti transformasi data, konsumsi aturan SPL, prosesor tulis, atau konfigurasi Logtail.
Sintaksis
sort <field> [asc/desc] ,(<field> [asc/desc])Parameter
Parameter | Tipe | Diperlukan | Deskripsi |
field | String | Ya | Menentukan bidang untuk diurutkan. Jenis bidang berikut didukung:
|
asc/desc | String | Tidak |
|
Contoh
Urutkan accesslog berdasarkan latencyMs.
Pernyataan SPL
* | extend latencyMs=cast(latencyMs as bigint) | sort latencyMs descData masukan
ip: 192.168.1.1 latencyMs: 10 ip: 192.168.1.1 latencyMs: 20 ip: 192.168.1.2 latencyMs: 15Data keluaran
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. Ini adalah instruksi inti untuk mengontrol volume data. Menggunakan limit membantu mencegah masalah kinerja atau pemborosan sumber daya yang disebabkan oleh hasil kueri yang terlalu besar. Ini cocok untuk berbagai skenario, seperti analisis log dan pemantauan waktu nyata.
Instruksi ini hanya digunakan untuk analisis kueri di Log Service. Tidak berlaku untuk skenario seperti transformasi data, konsumsi aturan SPL, prosesor tulis, atau konfigurasi Logtail.
Jika Anda tidak menggunakan instruksi sort untuk menentukan aturan pengurutan, keluaran instruksi limit akan dalam urutan acak. Hal ini karena urutan alami log tidak dijamin selama penyimpanan.
Sintaksis
limit (<offset>,) <size>Parameter
Parameter | Tipe | Diperlukan | Deskripsi |
offset | Integer | Tidak | Mengabaikan |
size | Integer | Ya | Batas baris. |
Contoh
Urutkan log akses berdasarkan bidang latencyMs dan kemudian ambil baris pertama.
Pernyataan SPL
* | extend latencyMs=cast(latencyMs as bigint) | sort latencyMs | limit 1Data masukan
ip: 192.168.1.1 latencyMs: 10 ip: 192.168.1.1 latencyMs: 20 ip: 192.168.1.2 latencyMs: 15Data keluaran
ip: 192.168.1.1 latencyMs: 20