本文档主要介绍字段操作函数的语法规则,包括参数解释、函数示例等。

函数列表

类型 函数 说明
字段操作字 e_drop_fields 将符合条件的日志字段删除。
e_keep_fields 保留符合条件的日志字段。
e_rename 将符合条件的日志字段重命名。

e_drop_fields

  • 函数格式
    e_drop_fields(字符串,....)
  • 参数说明
    参数 参数类型 是否必填 说明
    字符串 String 正则表达式。当字段名完全满足条件时丢弃日志相应字段,不满足的日志字段会保留。
  • 函数示例:如果content字段的值是123,则删除contentage字段。
    原始日志:
    age:  18
    content:  123
    name: twiss
    加工规则:
    e_if(e_search("content==123"), e_drop_fields("content|age"))
    # 等价于
    e_if(......, e_drop_fields("content", "age"))
    加工结果:
    name: twiss

e_keep_fields

  • 函数格式
    e_keep_fields(字符串,....)
  • 参数说明
    参数 参数类型 是否必填 说明
    字符串 String 正则表达式。当字段完全符合条件时保留相应的日志字段,不满足的日志字段会被丢弃。
  • 函数示例:如果content字段的值是123,则保留contentage字段。
    原始日志:
    age:  18
    content:  123
    name: twiss
    加工规则:
    e_if(e_search("content==123"), e_keep_fields("content", "age"))
    加工结果:
    age:  18
    content:  123
说明 日志服务中包含内置的元字段:例如__time____topic__等。如果在调用e_keep_fields时没有保留元字段如__time__,那么事件时间将被重置为当前时间。如果不希望重置元字段的值,需要将元字段放入列表中。常用e_keep_fields形式如:F_TIME, F_META, F_TAGS, "f1", "f2"

e_rename

  • 函数格式
    e_rename("字符串1", "新字段名1", "字符串2", "新字段名2", ...)
    说明 函数中字符串新字段名必须成对出现。
  • 参数说明
    参数 参数类型 是否必填 说明
    字符串 String 正则表达式,完全匹配的日志字段名。
    新字段名 String 新的字段名。
  • 返回结果

    返回重命名后的字符串。

  • 函数示例
    • 示例1
      原始日志:
      host:  1006
      加工规则:
      e_rename("host","client_host")
      加工结果:
      client_host:  1006
    • 示例2
      原始日志(两条):
      __topic__: access
      ret: 100
      __topic__: access
      return: 200
      加工规则:
      e_rename(r"ret|return", "Return")
      加工结果(两个):
      __topic__: access
      Return: 100
      __topic__: access
      Return: 200