全部產品
Search
文件中心

Simple Log Service:語言簡介

更新時間:Jul 11, 2024

Log Service語言SLS DSL(Domain Specific Language)是Log Service資料加工使用的與Python相容的指令碼。SLS DSL基於Python語言開發,提供兩百多個內建函數來簡化資料加工任務。

自由編排

通過SLS DSL自由編輯函數,對各種邏輯進行複雜組合,可以滿足大部分資料加工情境。例如,可以自由編排完成如下情境:

自由編排

動態分發

支援根據業務需求,將資料按照特定邏輯分發到不同的目標Logstore,目標Logstore的名稱支援動態計算或者從外部第三方(例如OSS Bucket)擷取。

靈活富化

  • 支援從本地資源或外部資源(包括OSS Bucket、RDS MySQL)來擷取富化資料。

  • 支援字典、表格的常規映射,支援表格的進階映射。

  • 支援自動重新整理載入的外部資源。

全域操作函數

支援近三十種全域操作函數,通過參數來控制步驟操作,且可以接受其他運算式函數的結果作為參數,其中控制函數不僅可以與運算式函數組合,也可以與其他步驟函數進行組合。主要包括以下種類函數:

  • 流程式控制制函數

    • 支援基於條件判斷後的流程分支,包括if-elseifswitchcompose等。

    • 通過調用e_search等簡單搜尋函數對不同類型的日誌進行靈活加工。

  • 事件操作函數

    支援對事件進行丟棄、保留、分裂、輸出、複製等。

  • 欄位操作函數

    支援保留、刪除、重新命名欄位等。

  • 欄位值提取函數

    • 支援通過Regex、GROK、KV、KV分隔字元、CSV、TSV、PSV、Syslog等方式提取欄位中的多個值或索引值對。

    • 支援JSON資料提取並進行富化。

  • 映射富化函數

    • 支援基於字典、表格進行映射或搜尋。

    • 支援從規則配置、外部OSS Bucket、RDS MySQL等資源擷取富化的維表資訊。

    • 支援基於全量、增量修改日誌對外部資源進行自動重新整理。

  • 增值內容函數

    支援豐富某些日誌欄位資訊,例如通過IP地址可以擷取該IP地址的威脅情報資訊,並將此資訊儲存至日誌欄位中,有助於您分析日誌。

運算式函數

提供兩百多個內建的運算式函數,以便轉換事件或控制全域函數的行為,覆蓋主流的資料加工需求,主要包括以下函數:

  • 事件檢查函數

    提供類似Lucene文法、完整的Regex,字串、泛字元、數值比較、and/or/not等組合的條件過濾機制。

  • 操作符函數

    提供欄位取值、控制、比較、容器判斷、多欄位操作等。

  • 轉換函式

    提供基礎類型轉換、數字轉換、字典、列錶轉換操作。

  • 算術函數

    提供基礎計算、多值計算、數學計算、數學參數等。

  • 字串函數

    提供多欄位操作,包括編碼、解碼、排序、倒序、替換,常規規整、尋找判斷、切分、格式、字元集判斷等。

  • 日期時間函數

    提供日期時間轉換、擷取日期時間屬性、擷取日期時間、擷取Unix時間戳記、擷取日期時間字串,修改和比較日期時間等。

  • Regex函數

    提供欄位提取、匹配、判斷、替換、切分等操作。

  • GROK函數

    提供四百多種GROK內建模式,支援GROK模式替換。

  • 特定結構化資料函數

    支援對特定結構的JSON、Protobuf與XML資料進行提取、過濾等。

  • IP解析函數

    提供IP位址解析和轉換等函數。

  • 編碼解碼函數

    支援對SHA1、SHA256、SHA512、MD5、HTML、URL、Base64等格式的文本進行編碼解碼。