本文介紹事件檢查函數的文法規則,包括參數解釋、函數樣本等。
函數列表
類型 | 函數 | 說明 |
基本方法 | 判斷日誌欄位是否存在。 | |
判斷日誌欄位是否存在。 支援和其他函數組合使用。相關樣本,請參見調用函數清洗資料。 | ||
運算式函數 | 提供一種簡化,類似Lucene文法的事件搜尋方式。 支援和其他函數組合使用。相關樣本,請參見調用函數清洗資料。 | |
判斷當前日誌欄位的值是否滿足Regex。 支援和其他函數組合使用。相關樣本,請參見調用函數清洗資料。 | ||
判斷當前日誌欄位的值是否滿足Regex,任意欄位匹配返回True,否則返回False。 | ||
判斷當前日誌欄位的值是否滿足Regex,所有欄位匹配返回True,否則返回False。 |
e_has
判斷欄位是否存在。
函數格式
e_has("key")
參數說明
參數名稱
參數類型
是否必填
說明
key
String
是
日誌的欄位名。
返回結果
欄位存在返回True,不存在返回False。
函數樣本
判斷日誌是否存在content欄位,存在則保留,不存在則丟棄。
原始日誌
content: 123
加工規則
e_keep(e_has("content"))
加工結果
content: 123
e_not_has
判斷欄位是否不存在。
函數格式
e_not_has("key")
參數說明
參數名稱
參數類型
是否必填
說明
key
String
是
欄位名稱。
返回結果
欄位不存在返回True,存在返回False。
函數樣本
判斷日誌是否存在content欄位,不存在則保留該日誌,否則丟棄該日誌。
原始日誌
content: 123
加工規則
e_if_else(e_not_has("content"),KEEP,DROP)
加工結果
日誌被丟棄。
更多參考
支援和其他函數組合使用。相關樣本,請參見調用函數清洗資料。
e_search
提供一種簡化,類似Lucene文法的事件搜尋方式。
函數格式
e_search(querystring)
參數說明
參數名稱
參數類型
是否必填
說明
querystring
String
是
查詢字串,用於快速過濾日誌的查詢字串。更多資訊,請參見查詢字串文法。
返回結果
滿足條件返回True,否則返回False。
函數樣本
# 全文 e_search("active error") # 全文:兩個子串是OR關係,進行搜尋。 e_search('"active error"') # 全文:一個子串搜尋。 # 欄位:字串 e_search("status: active") # 單詞搜尋。 e_search('author: "john smith"') # 帶空格子串搜尋。 e_search('field: active error') # 相當於field:active OR "error"。 # 完全符合 e_search('author== "john smith"') # 萬用字元搜尋,星號(*)匹配零個或多個字元,半形問號(?)匹配一個字元。 e_search("status: active*test") # active*test中僅包含星號(*),可以不使用雙引號("")包裹。 e_search("status: active?good") # active?good中僅包含半形問號(?),可以不使用雙引號("")包裹。 e_search("status== ac*tive?good") # 完全符合。 # 搜尋值轉義,星號(*)或問號(?)需要使用反斜線(\)轉義。 e_search('status: "\*\?()[]:="') # \*\?()[]:=中包含特殊字元,需要使用雙引號("")包裹,除了星號(*)、半形問號(?)和反斜線(\)需要轉義外,其他不用轉義。 e_search("status: active\*test") # active\*test中僅包含星號(*),可以不使用雙引號("")包裹。 e_search("status: active\?test") # active\?test中僅包含半形問號(?),可以不使用雙引號("")包裹。 # 欄位名轉義 e_search("\*\(1+1\)\?: abc") # 欄位名不能用雙引號("")包裹,特殊字元用反斜線(\)轉義。 e_search("__tag__\:__container_name__: abc") # 用反斜線(\)轉義。 e_search("中文欄位: abc") # 直接寫中文。 # 正則匹配 e_search('content~="Regex"') # 正則匹配。 # 數字 e_search('count: [100, 200]') # >=100 and <=200 e_search('count: [*, 200]') # <=200 e_search('count: [200, *]') # >=200 e_search('age >= 18') # >= 18 e_search('age > 18') # > 18 # 使用關係運算子 e_search("abc OR xyz") # 關係運算子不區分大小寫,OR和or效果一樣。 e_search("abc and (xyz or zzz)") e_search("abc and not (xyz and not zzz)") e_search("abc && xyz") # and e_search("abc || xyz") # or e_search("abc || !xyz") # or not
更多參考
支援和其他函數組合使用。相關樣本,請參見調用函數清洗資料。
e_match
判斷當前日誌欄位的值是否滿足Regex。
函數格式
e_match(key, regular_expression, full=True)
說明e_match函數通常與
op_not
、op_and
或者op_or
結合使用。參數說明
參數名稱
參數類型
是否必填
說明
key
String
是
欄位名。當欄位不存在時,視為當前子條件不匹配。
例如:欄位
f1
不存在,那麼e_match("f1", ...)
結果為False。regular_expression
String
是
Regex。如果需要使用純粹字串匹配時(非Regex),可以使用函數
str_regex_escape
修飾Regex。full
Bool
否
是否完全符合,預設為True表示完全符合。關於匹配模式請參見Regex。
返回結果
返回欄位匹配的判斷結果True或False。
函數樣本
判斷欄位k1的值是否為數字。
原始日誌
k1: 123
加工規則
e_set("match",e_match("k1",r'\d+'))
加工結果
k1: 123 match: True
更多參考
支援和其他函數組合使用。相關樣本,請參見調用函數清洗資料。
e_match_any
判斷當前日誌欄位的值是否滿足Regex,任意欄位匹配返回True,否則返回False。
函數格式
e_match_any(key1, regular_expression1, key2, regular_expression2, ..., full=True)
說明函數中
key
和regular_expression
必須成對出現。e_match_any函數通常與
op_not
、op_and
或者op_or
結合使用。
參數說明
參數名稱
參數類型
是否必填
說明
key
String
是
欄位名。當欄位不存在時,視為當前子條件不匹配。
例如:欄位
f1
不存在,那麼e_match_any("f1", ...)
結果為False。regular_expression
String
是
正則模式。如果需要使用純粹字串匹配時(非正則),可以使用函數
str_regex_escape
修飾正則。full
Bool
否
是否完全符合,預設為True表示完全符合。關於匹配模式請參見Regex。
返回結果
返回欄位匹配的判斷結果True或False。
函數樣本
e_match_any匹配,任意欄位匹配則返回True。
原始日誌
k1: 123 k2: abc k3: abc123
加工規則
e_set("match",e_match_any('k1', r'\d+', 'k2', '.+'))
加工結果
k1:123 k2:abc k3:abc123 match:true
更多參考
支援和其他函數組合使用。相關樣本,請參見調用函數清洗資料。
e_match_all
判斷當前日誌欄位的值是否滿足Regex,所有欄位匹配返回True,否則返回False。
函數格式
e_match_all(key1, regular_expression1, key2, regular_expression2, ..., full=True)
說明函數中
key
和regular_expression
必須成對出現。e_match_all函數通常與
op_not
、op_and
或者op_or
結合使用。
參數說明
參數名稱
參數類型
是否必填
說明
欄位名
String
是
欄位名。當欄位不存在時,視為當前子條件不匹配。
例如:欄位
f1
不存在,那麼e_match_all("f1", ...)
結果為False。正則
String
是
正則模式。如果需要使用純粹字串匹配時(非正則),可以使用函數
str_regex_escape
修飾正則。full
Bool
否
是否完全符合,預設為True表示完全符合。關於匹配模式請參見Regex。
返回結果
返回欄位匹配的判斷結果True或False。
函數樣本
原始日誌
k1: 123 k2: abc k3: abc123
加工規則
e_set("match", e_match_all("k1", r"\d+", "k2", r"\d+"))
加工結果
k1:123 k2:abc k3:abc123 match:false
更多參考
支援和其他函數組合使用。相關樣本,請參見調用函數清洗資料。