赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 日志服务
  4. 操作指南
  5. 数据加工
  6. 数据加工(旧版)
  7. 数据加工语法
  8. 表达式函数
  9. 事件检查函数

事件检查函数

  • 表达式函数
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

本文介绍事件检查函数的语法规则,包括参数解释、函数示例等。

函数列表

类型

函数

说明

基本方法

e_has

判断日志字段是否存在。

e_not_has

判断日志字段是否存在。

支持和其他函数组合使用。相关示例,请参见调用函数清洗数据。

表达式函数

e_search

提供一种简化,类似Lucene语法的事件搜索方式。

支持和其他函数组合使用。相关示例,请参见调用函数清洗数据。

e_match

判断当前日志字段的值是否满足正则表达式。

支持和其他函数组合使用。相关示例,请参见调用函数清洗数据。

e_match_any

判断当前日志字段的值是否满足正则表达式,任意字段匹配返回True,否则返回False。

e_match_all

判断当前日志字段的值是否满足正则表达式,所有字段匹配返回True,否则返回False。

同时,事件检查函数可以与如下表达式函数配合使用:

类型

函数

说明

基本判断

op_and

逻辑and运算。

op_or

逻辑or运算。

op_not

逻辑not运算。

op_nullif

判断两个表达式的取值。

op_ifnull

返回第一个值不为None的表达式的值。

op_coalesce

返回第一个值不为None的表达式的值。

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~="正则表达式"')   # 正则匹配。
    
    # 数字
    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

判断当前日志字段的值是否满足正则表达式。

  • 函数格式

    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

    是

    正则表达式。如果需要使用纯粹字符串匹配时(非正则表达式),可以使用函数str_regex_escape修饰正则表达式。

    full

    Bool

    否

    是否完全匹配,默认为True表示完全匹配。关于匹配模式请参见正则表达式。

  • 返回结果

    返回字段匹配的判断结果True或False。

  • 函数示例

    判断字段k1的值是否为数字。

    • 原始日志

      k1: 123
    • 加工规则

      e_set("match",e_match("k1",r'\d+'))
    • 加工结果

      k1: 123
      match: True
  • 更多参考

    支持和其他函数组合使用。相关示例,请参见调用函数清洗数据。

e_match_any

判断当前日志字段的值是否满足正则表达式,任意字段匹配返回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表示完全匹配。关于匹配模式请参见正则表达式。

  • 返回结果

    返回字段匹配的判断结果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

判断当前日志字段的值是否满足正则表达式,所有字段匹配返回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表示完全匹配。关于匹配模式请参见正则表达式。

  • 返回结果

    返回字段匹配的判断结果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
  • 更多参考

    支持和其他函数组合使用。相关示例,请参见调用函数清洗数据。

相关文章

事件检查函数 2025-04-22 10:54

本文介绍事件检查函数的语法规则,包括参数解释、函数示例等。 函数列表

操作符函数 2025-04-22 10:54

本文介绍操作符函数的语法规则,包括参数解释、函数示例等。 函数列表

转换函数 2025-04-22 10:54

本文主要介绍操作符函数的语法规则,包括参数说明、函数示例等。 函数列表

算术函数 2025-04-22 10:54

本文介绍算术函数的语法规则,包括参数解释、函数示例等。 函数列表

字符串函数 2025-04-22 10:54

本文介绍字符串函数的语法规则,包括参数解释、函数示例等。 函数列表

日期时间函数 2025-04-22 10:54

本文介绍日期时间函数的语法规则,包括参数解释、函数示例等。 在SLS DSL加工逻辑中,日志中的所有值都以字符串的形式存储,需要根据场景对数据类型进行转换。 日志中时间主要有以下三种数据类型,您可以根据本文提供的日期时间函数进行日期时间格式转换。

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号