全部產品
Search
文件中心

Simple Log Service:基於規則消費概述

更新時間:Sep 05, 2025

Log Service提供基於規則的資料即時消費功能,通過SPL可以實現在服務端的資料處理後進行消費。本文介紹基於規則消費功能的概念、功能優勢、應用情境、計費規則、消費目標等資訊。

工作原理

基於規則消費是指第三方軟體、多語言應用、雲產品、流式計算架構等通過設定SPL即時消費Log Service的資料。SPL是SLS推出的一款針對日誌弱結構化特點進行高效能資料處理的語言。基於規則消費的原理是在服務端使用SPL對日誌中的弱結構化資料進行預先處理和資料清洗,例如行過濾、列裁剪、正則提取、JSON欄位提取等操作,在資料到達用戶端時已經是規整後的資料格式,SPL文法詳情請參見SPL文法

image

說明

基於規則消費和查詢與分析都是讀取資料。關於兩者的區別,請參見日誌消費與查詢區別

應用情境

基於規則消費功能適用於Realtime Compute和Realtime Compute中需要資料預先處理的情境,例如在消費日誌資料前,可能需要進行行過濾、列裁剪、正則提取、JSON欄位提取等操作。基於規則消費的即時性較強,通常為秒級。您可以自訂儲存時間。

功能優勢

  • 通過公網消費,節省流量費用。

    • 某客戶想把日誌寫入到Log Service後,再通過公網消費日誌,過濾後再分發給內部系統。基於SPL消費功能,該客戶可以直接在Log Service中實現日誌規則過濾,避免將大量無效日誌投遞給消費者,節省網路流量費用。

  • 節省本地CPU資源,加速計算進程。

    • 某客戶想把日誌寫入到Log Service後,再消費日誌到本地機器進行計算。基於SPL消費功能,該客戶可以直接在Log Service中實現SPL計算,降低本地資源消耗。

計費規則

  • 若Logstore的計費模式為按寫入資料量計費,基於規則消費將不產生費用,僅從Log Service公網網域名稱所在介面拉取資料時,會產生外網讀取流量(按照壓縮後的資料量計算)。具體內容,可參見按寫入資料量計費模式計費項目

  • 若Logstore的計費模式為按使用功能計費,基於規則消費服務會產生服務端計算費用,使用Log Service公網網域名稱可能產生公網流量費用。更多資訊,請參見按使用功能計費模式計費項目

消費目標

Log Service支援的基於規則消費目標如下表所示。

類型

目標

說明

多語言應用

多語言應用

基於Java、Python、Go等語言的應用基於規則消費組消費Log Service的資料。具體操作,請參見通過API消費通過消費組消費日誌

最佳實務:使用SDK基於消費處理器(SPL)消費日誌

雲產品

阿里雲Flink

您可以通過阿里雲FlinkRealtime Compute消費Log Service的資料。具體操作,請參見Log ServiceSLS

最佳實務:

流式計算

Kafka

如有需求請提工單申請。

注意事項

  • 基於規則消費需要在服務端進行複雜計算。由於SPL計算複雜度及資料特徵的差異,資料讀取的服務端延遲可能會略有增加(例如處理5MB資料,延遲增加10~100ms之間)。然而,一般情況下,儘管服務端延遲有所增加,但整體端到端延遲(即從資料拉取到本地計算完成的總時間)通常會減少。

  • 基於規則消費在SPL語法錯誤、來源資料欄位缺失等情況下,可能會導致擷取到的資料缺失或失敗,具體說明可以參考錯誤處理

  • 基於規則消費在配置SPL語句時,SPL語句長度(字串長度)最大為4KB。

  • 基於規則消費與普通即時消費Shard讀取限制相同:其中基於規則消費的Shard讀流量是指SPL處理前的未經處理資料量,具體限制可以參考資料讀寫

常見問題

  • 規則消費的ShardReadQuotaExceed錯誤怎麼處理?

    • 這個錯誤碼是由於Shard讀流量超過Quota報錯,解決方案:

      • 消費用戶端程式遇到此錯誤可以等待(sleep)後重試。

      • 或者手動分裂Shard,對於Shard分裂後的產生的新資料消費,達到降低每個shard讀取速度的效果。

  • 規則消費的流量控制是什麼樣的?

    • 規則消費的流量控制策略等同於普通消費的流量控制,具體可以參考資料讀寫。規則消費的流量計算是指SPL處理前的未經處理資料量:

      • 例如未經處理資料大小為100MB(壓縮後),經過SPL語句 * | where method = 'POST' 過濾後,返回給消費用戶端的資料大小為20MB(壓縮後),讀取流量控制是按照100MB來計算。

  • 使用規則消費後,為什麼在專案監控中的“流量/分鐘”圖表中看到的outflow的流量很低?

    • 因為專案監控中顯示的“流量/分鐘”的outflow是指SPL處理後的資料量,並非未經處理資料量,如果SPL語句中包含行過濾、列裁剪等減少資料量的指令時,可能會有outflow低情況出現。