全部產品
Search
文件中心

Simple Log Service:彙總指令

更新時間:Jan 06, 2026

本文主要介紹彙總指令的用法和樣本。

stats

用於統計分析日誌的指令,類似 SQL 中的彙總函式(如 COUNTSUMAVG 等)。對日誌資料中的特定欄位進行統計、分組和彙總操作。

重要
  • 該指令專用於LogStore的查詢分析,不適用於新版資料加工、SPL規則消費、寫入處理器和Logtail配置等情境。

  • 預設情況stats返回前100條彙總結果,如果需要返回更多可以結合limit指令使用

文法

stats <output>=<aggOperator> by <group>,[<group>...]

參數說明

參數

類型

必填

說明

output

String

為統計結果欄位指定別名。

aggOperator

SQLExp

支援以下彙總函式:

  • count

  • count_if

  • min

  • max

  • sum

  • avg

  • skewness

  • kurtosis

  • approx_percentile

  • approx_distinct

  • bool_and

  • bool_or

  • every

  • arbitrary

  • array_agg

group

String

指定彙總的維度,類似sql中group by的欄位。

樣本

  • 樣本1:對於accesslog按ip統計pv

    • SPL語句

      * | stats pv=count(*) by ip
    • 輸入資料

      ip: 192.168.1.1
      latencyMs: 10
      
      ip: 192.168.1.1
      latencyMs: 20
      
      ip: 192.168.1.2
      latencyMs: 10
    • 輸出資料

      ip: 192.168.1.2
      pv: 1
      
      ip: 192.168.1.1
      pv: 2
  • 樣本2:對於accesslog統計所有ip的延遲min/max

    • SPL語句

      * 
      | extend latencyMs=cast(latencyMs as bigint)
      | stats minLatencyMs=min(latencyMs), maxLatencyMs=max(latencyMs) by ip
    • 輸入資料

      ip: 192.168.1.1
      latencyMs: 10
      
      ip: 192.168.1.1
      latencyMs: 20
      
      ip: 192.168.1.2
      latencyMs: 10
    • 輸出資料

      ip: 192.168.1.2
      minLatencyMs: 10
      maxLatencyMs: 20
      
      ip: 192.168.1.1
      minLatencyMs: 10
      maxLatencyMs: 10
  • 樣本3:對於accesslog統計所有pv

    • SPL語句

      * | stats pv=count(*)
    • 輸入資料

      ip: 192.168.1.1
      latencyMs: 10
      
      ip: 192.168.1.1
      latencyMs: 20
      
      ip: 192.168.1.2
      latencyMs: 10
    • 輸出資料

      pv: 3

sort

對查詢結果進行排序,支援對欄位值或統計結果進行升序(asc)或降序(desc)排序。它是日誌分析中快速定位關鍵資料、產生有序報表的重要工具。

重要

該指令專用於LogStore的查詢分析,不適用於新版資料加工、SPL規則消費、寫入處理器和Logtail配置等情境。

文法

sort <field> [asc/desc] ,(<field> [asc/desc])

參數說明

參數

類型

必填

說明

field

String

指定排序的欄位。支援以下類型欄位:

  • 原始日誌欄位(如 statusrequest_time)。

  • 統計欄位(如 count(*)avg(response_time))。

  • 時間欄位(如 @timestamp)。

asc/desc

String

  • asc:升序排序(預設)。

  • desc:降序排序(常用情境:按統計值從高到低排序)。

樣本

對於accessloglatencyMs排序。

  • SPL語句

    * 
    | extend latencyMs=cast(latencyMs as bigint) 
    | sort latencyMs desc
  • 輸入資料

    ip: 192.168.1.1
    latencyMs: 10
    
    ip: 192.168.1.1
    latencyMs: 20
    
    ip: 192.168.1.2
    latencyMs: 15
  • 輸出資料

    ip: 192.168.1.1
    latencyMs: 20
    
    ip: 192.168.1.2
    latencyMs: 15
    
    ip: 192.168.1.1
    latencyMs: 10

limit

用於限制查詢結果返回的日誌行數,是控制資料量的核心指令之一。通過 limit 可有效防止查詢結果過大導致的效能問題或資源浪費,適用於日誌分析、即時監控等多種情境。

重要
  • 該指令專用於LogStore的查詢分析,不適用於新版資料加工、SPL規則消費、寫入處理器和Logtail配置等情境。

  • 若不配合sort指令明確定序,limit指令的輸出結果的 順序是隨機的(因日誌儲存時未保證自然順序)。

文法

limit (<offset>,) <size>

參數說明

參數

類型

必填

說明

offset

Interger

跳過前offset行。

size

Interger

行數限制。

樣本

對於accesslog按latencyMs排序後取第一條。

  • SPL語句

    * 
    | extend latencyMs=cast(latencyMs as bigint) 
    | sort latencyMs
    | limit 1
  • 輸入資料

    ip: 192.168.1.1
    latencyMs: 10
    
    ip: 192.168.1.1
    latencyMs: 20
    
    ip: 192.168.1.2
    latencyMs: 15
  • 輸出資料

    ip: 192.168.1.1
    latencyMs: 20