All Products
Search
Document Center

Simple Log Service:Instruksi agregasi

Last Updated:Jun 23, 2026

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.

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

  • 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 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/maks untuk semua alamat ip dalam accesslog.

    • 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 pv dalam 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).

Penting

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:

  • 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.

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.

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

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