全部產品
Search
文件中心

Simple Log Service:使用SPL查詢和分析日誌

更新時間:Oct 25, 2024

當您需要對日誌資料進行結構化資訊提取、欄位操作和資料過濾時,可以通過使用SPL語言(SLS Processing Language)來解決這些問題。另外,Log Service還提供多級管道級聯功能,以便輸出經過SPL處理的結果資料。

背景資訊

當SPL查詢涉及到的欄位都有欄位索引(並開啟統計)的時候,SPL會按照索引模式執行查詢分析。如果SPL涉及的欄位沒有索引,會按照掃描(Scan)模式查詢和分析。更多資訊,請參見掃描(Scan)查詢概述

支援地區

說明

在其他地區,無論SPL語句中欄位是否有索引,都會直接按照掃描模式執行。

華東6(福州-本地地區)、印尼(雅加達)。

基本文法

  • 基本文法

    SPL指令的文法參考 SPL指令

    索引查詢語句 | <spl-cmd> ... | <spl-cmd> ...
  • 使用樣本

    • 按某個條件過濾原始日誌

      status:200 | where host like '%www%'
    • 計算出新的欄位,計算出的欄位也可以再次過濾。

      status:200 
      | extend timediff = cast(endTime as bigint) - cast(beginTime as bigint)
      | where timediff > 100
    • 將JSON欄位展開,丟棄原有的JSON欄位。

      status:200 
      | parse-json body 
      | project-away body

索引模式SPL與掃描模式SPL的對比

當SPL查詢涉及到的欄位都有欄位索引(並開啟統計)的時候,SPL會自動按照索引模式執行,否則按照掃描模式執行。

對比項

索引模式SPL

掃描模式SPL

是否需要配置索引

需要SPL中涉及到的欄位,開啟欄位索引並開啟統計。

不需要。

重要

第一級豎線(|)前的索引查詢語句仍依賴於索引。

效能

一般

是否支援隨機翻頁

支援。

不支援。

日誌長條圖

基於查詢語句的查詢結果進行展示。

基於查詢語句的查詢結果、掃描進度進行展示。

運算子與函數

參考SPL指令SPL支援的SQL函數列表

參考SPL指令SPL支援的SQL函數列表

欄位類型

SPL語句中出現的欄位均按照text類型處理。詳情請參考資料類型轉換

SPL語句中出現的欄位均按照text類型處理。詳情請參考資料類型轉換

結果集大小

通過控制台或SDK指定,最大100條。

滿足下述任一條件,本次掃描結束並返回掃描結果。

  • 達到您所指定的結果條數。

    您可以控制台或SDK指定返回的結果條數。

  • 掃描超過了單次系統設定的最大條數(基於查詢語句的結果集,預設10萬條。)

  • 掃描執行時間超過45秒。

費用

索引流量和索引儲存費用。更多資訊,請參見按使用功能計費模式計費項目

SPL執行本身不產生額外費用。

掃描部分按照流量收費,即基於索引查詢後掃描命中的資料量收費。

操作方式

重要

在查詢日誌前,請確保您已採集到日誌和建立索引。索引是一種儲存結構,用於對日誌資料中的一列或多列進行排序。更多資訊,請參見建立索引

控制台

登入Log Service控制台,在目標Logstore的查詢和分析頁面執行查詢操作。具體操作,請參見查詢和分析日誌

樣本

原始日誌為1000萬條。查詢語句:Status:200 | where Category like '%xx%',滿足Status:200 where Category like '%xx%'的日誌1000條。查詢結果介面中的長條圖(histogram)展示了這1000條符合整個SPL語句條件的日誌隨時間變化的分布情況。

API

通過GetLogs(返回結果不壓縮後傳輸)GetLogsV2(返回結果壓縮後傳輸)介面執行查詢操作。