All Products
Search
Document Center

Simple Log Service:Instruksi Agregasi

Last Updated:Nov 09, 2025

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.

Penting
  • 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:

  • count

  • count_if

  • min

  • max

  • sum

  • avg

  • skewness

  • kurtosis

  • approx_percentile

  • approx_distinct

  • bool_and

  • bool_or

  • every

  • arbitrary

  • array_agg

group

String

Tidak

Menentukan dimensi untuk agregasi. Ini mirip dengan bidang GROUP BY dalam SQL.

Contoh

  • Contoh 1: Hitung pv dari log akses berdasarkan ip.

    • Pernyataan SPL

      * | stats pv=count(*) by ip
    • Data masukan

      ip: 192.168.1.1
      latencyMs: 10
      
      ip: 192.168.1.1
      latencyMs: 20
      
      ip: 192.168.1.2
      latencyMs: 10
    • Data keluaran

      ip: 192.168.1.2
      pv: 1
      
      ip: 192.168.1.1
      pv: 2
  • Contoh 2: Hitung min/maks latensi untuk semua alamat ip dalam accesslog.

    • Pernyataan SPL

      * 
      | extend latencyMs=cast(latencyMs as bigint)
      | stats minLatencyMs=min(latencyMs), maxLatencyMs=max(latencyMs) by ip
    • Data masukan

      ip: 192.168.1.1
      latencyMs: 10
      
      ip: 192.168.1.1
      latencyMs: 20
      
      ip: 192.168.1.2
      latencyMs: 10
    • Data keluaran

      ip: 192.168.1.2
      minLatencyMs: 10
      maxLatencyMs: 20
      
      ip: 192.168.1.1
      minLatencyMs: 10
      maxLatencyMs: 10
  • Contoh 3: Hitung total pv dalam 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: 10
    • Data 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.

Penting

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:

  • Bidang log asli, seperti status dan request_time.

  • Bidang statistik, seperti count(*) dan avg(response_time).

  • Bidang waktu, seperti @timestamp.

asc/desc

String

Tidak

  • asc: Mengurutkan dalam urutan menaik (default).

  • desc: Mengurutkan dalam urutan menurun. Ini sering digunakan untuk mengurutkan nilai statistik dari tinggi ke rendah.

Contoh

Urutkan accesslog berdasarkan latencyMs.

  • Pernyataan SPL

    * 
    | extend latencyMs=cast(latencyMs as bigint) 
    | sort latencyMs desc
  • Data masukan

    ip: 192.168.1.1
    latencyMs: 10
    
    ip: 192.168.1.1
    latencyMs: 20
    
    ip: 192.168.1.2
    latencyMs: 15
  • Data 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.

Penting
  • 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 offset baris pertama.

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 1
  • Data masukan

    ip: 192.168.1.1
    latencyMs: 10
    
    ip: 192.168.1.1
    latencyMs: 20
    
    ip: 192.168.1.2
    latencyMs: 15
  • Data keluaran

    ip: 192.168.1.1
    latencyMs: 20