本文罗列了日志服务的所有加工函数。

全局操作函数

函数分类 函数名 说明
流程控制函数 e_if 条件与操作组合。
  • 满足条件则进行对应操作,不满足条件则不进行对应操作,直接进行下一个条件判断。
  • 对于某一条事件,如果其中某一操作删除了事件,则不会再执行后续操作。
e_if_else 根据条件判断的结果进行对应操作。
e_switch 条件与操作的组合。
  • 满足条件则进行对应操作并返回结果,不满足条件则不进行对应操作,直接进行下一个条件判断。
  • 如果没有满足任何条件,但配置了默认参数,则执行默认配置的操作并返回结果。
  • 对于某一条事件,如果其中某一操作删除了事件,则不会再执行后续操作。
e_compose 组合一系列操作。
  • 常用在e_ife_switche_if_else中组合操作。
  • 依次调用操作,将事件传递转换,并返回最后的事件。
  • 对于某一条事件,如果其中某一操作删除了事件,则不会再执行后续操作。
事件操作函数 e_drop 根据条件,丢弃事件。
e_keep 根据条件,保留事件。
e_split 基于字段的值分裂出多个事件。也支持通过JMES提取字段后再进行分裂。
e_output 输出事件到配置的特定目标,并配置输出时的topic、source、tag等信息。输出事件后会删除事件。
e_coutput 输出事件到配置的特定目标,并配置输出时的topic、source、tag等信息。输出事件后会保留原事件,原事件会继续进行后续操作。
字段操作函数 e_drop_fields 将符合条件的日志字段删除。
e_keep_fields 保留符合条件的日志字段。
e_rename 将符合条件的日志字段重命名。
字段赋值函数 e_set 赋值。
字段值提取函数 e_regex 根据正则表达式提取事件字段的值并赋值给其他事件字段。
e_json 对事件特定字段中的JSON对象进行JSON操作,包括JSON展开、JMES提取或者JMES提取后再展开。
e_kv 通过quote提取多个源字段中的键值对信息。
e_kv_delimit 通过分隔符提取源字段中的键值对信息。
e_csv 使用自定义的分隔符与预定义的字段名,从特定字段中提取多个字段。默认分隔符为逗号(,)。
e_tsv 使用自定义的分隔符与预定义的字段名,从特定字段中提取多个字段。默认分隔符为\t。
e_psv 使用自定义的分隔符与预定义的字段名,从特定字段中提取多个字段。默认分隔符为竖线(|)。
e_syslogrfc 根据Syslog协议由已知priority值计算出facility和severity,并且匹配相应的level信息。
e_anchor 提取起始位置和终止位置中间的值。
映射富化函数 e_dict_map 根据输入字段的值,通过字典映射出一个新的字段。
e_table_map 根据输入字段的值,在表格中查找对应的行,返回对应字段的值。
e_search_map 对关键字是查询字符串,以及其匹配的值的字典数据进行映射。
e_search_table_map 对某列是查询字符串,以及其匹配的值的表格数据进行映射。
任务配置函数 res_local_update 更新当前任务的高级参数。

表达式函数

函数分类 函数名 说明
事件检查函数 v 获得事件特定字段的值,传入多个字段名时,返回事件中第一个存在的字段的值。
e_has 判断字段是否存在。
e_not_has 判断字段是否不存在。
e_search 提供一种简化的搜索方式。
e_match、e_match_all、e_match_any 是用于判断当前事件字段的值是否满足特定条件的表达式。
操作符函数 op_if 根据判断条件返回不同表达式。
op_ifnull 返回第一个值不为None的表达式的值。
op_coalesce 返回第一个值不为None的表达式的值。
op_nullif 如果表达式1等于表达式2,返回None,否则返回表达式1。
op_and 逻辑and运算。
op_not 逻辑not运算。
op_or 逻辑or运算。
op_eq 返回按照a==b条件进行计算的结果。a和b的类型必须一致,例如都是字符串、数字或者列表。
op_ge 返回按照a>=b条件进行计算的结果。a和b的类型必须一致,例如都是字符串、数字或者列表。
op_gt 返回按照a>b条件进行计算的结果。a和b的类型必须一致,例如都是字符串、数字或者列表。
op_le 返回按照a<=b条件进行计算的结果。a和b的类型必须一致,例如都是字符串、数字或者列表。
op_lt 返回按照a<b条件进行计算的结果。a和b的类型必须一致,例如都是字符串、数字或者列表。
op_ne 返回按照a!=b条件进行计算的结果。a和b的类型必须一致,例如都是字符串、数字或者列表。
op_len 计算文本字符串中的字符数,可用于字符串和其他返回元组、列表、字典的表达式。
op_in 判断字符串、元组、列表或字典中是否包含特定元素。
op_not_in 判断字符串、元组、列表或字典中是否不包含特定元素。
op_slice 对指定字符串、数组、元组进行截取。
op_index 根据字符串、数组、元组的下标返回其对应的元素。
op_add 计算多个值的和,可以是字符串或者数字等。
op_max 计算多个字段或表达式表示的数值的最大值。
op_min 计算多个字段或表达式表示的数值的最小值。
转换函数 ct_int 将字段或表达式的值转换为整数。
ct_float 将字段或表达式的值转换为浮点数。
ct_str 将字段或表达式的值转换为字符串。
ct_bool 将字段或表达式值转换为布尔值。
ct_chr 将字段或表达式的ANSI/Unicode值转换为对应字符。
ct_ord 转换(字段或表达式的)的字符为对应ANSI/Unicode值。
ct_hex 将字段或表达式的数值转换为十六进制数。
ct_oct 将字段或表达式的数值转换为八进制数。
ct_bin 将字段或表达式的数值转换为二进制数。
bin2oct 将二进制字节字符串转换为八进制字符串。
bin2hex 将二进制字节字符串转换为十六进制字符串。
算术函数 op_abs 计算传入值的绝对值。
op_div_floor 对传入值进行整除运算。
op_div_true 对传入值进行除法运算。
op_pow 对传入值进行幂值计算。
op_mul 对传入值进行乘法运算。
op_neg 计算传入值的相反数。
op_mod 对传入值进行模计算。
op_sub 对传入值进行减法运算。
op_round 对传入值进行四舍五入操作。
op_sum 对传入值进行求和运算。
mat_ceil 对传入值进行向上取整操作。
mat_exp 以常数e为底的指数函数。
mat_fabs 计算传入值的绝对值。
mat_floor 对传入值进行向下取整操作。
mat_log 计算传入值的对数。
mat_log10 计算以10为基数的传入值的对数。
mat_sqrt 计算传入值的平方根。
mat_degrees 将弧度转换为角度。
mat_radians 将角度转换为弧度。
mat_sin 计算传入值弧度的正弦值。
mat_cos 计算传入值弧度的余弦值。
mat_tan 计算传入值弧度的正切值。
mat_acos 计算传入值的反余弦弧度值。
mat_asin 计算传入值的反正弦弧度值。
mat_atan 计算传入值的反正切弧度值。
mat_atan2 计算坐标值的反正切值。
mat_atanh 计算传入值的反双曲正切值。
mat_hypot 计算传入值得欧几里德范数。
字符串函数 str_format 将字符串格式化。
str_join 将序列中的元素与指定的字符串连接生成一个新的字符串。
str_zip 将两个值或表达式的字符串进行并发分裂然后再合并成一个字符串。
str_encode 对字符串进行编码。
str_decode 对字符串进行解码。
str_hex_escape_encode 将特殊字符进行转义,支持十六进制字符转义为中文字符。
str_sort 对字符串进行排序。
str_reverse 对字符串进行倒叙。
str_replace 将旧字符串根据规则替换成新字符串。
str_logtash_config_normalize 将Logstash配置语言转成JSON格式。
str_translate 将字符串中的指定字符按照对应关系进行替换。
str_strip 删除字符串中指定的字符。
str_lstrip 删除字符串开头的指定字符。
str_rstrip 删除字符串结尾的指定字符。
str_lower 将字符串中所有大写字符转换为小写字符。
str_upper 将字符串中所有小写字符转换为大写字符。
str_title 将所有单词的首个字母转化为大写,其余字母均为小写。
str_capitalize 将字符串的第一个字母转化为大写,其他字母转化为小写。
str_swapcase 对字符串的大小写字母进行转换。
str_count 统计字符串里某个字符出现的次数。
str_find 判断原字符串中是否包含指定的子字符串。
str_rfind 查找字符串中指定字符最后一次出现的位置。
str_endswith 判断字符串是否以指定后缀结尾。
str_startswith 判断字符串是否以指定字符串开头。
str_split 通过指定分隔符对字符串进行分割。
str_splitlines 通过换行符符对字符串进行分割。
str_partition 根据指定的分隔符将字符串从左往右分割为三部分。
str_rpartition 根据指定的分隔符将字符串从右往左分割为三部分。
str_center 用指定字符将字符串填充到指定长度。
str_ljust 用指定字符将字符串从结尾填充至指定长度。
str_rjust 用指定字符将原字符串从开头填充至指定长度。
str_zfill 用字符0从开头将字符串填充至指定长度。
str_expandtabs 将字符串中的\t转为空格。
str_isalnum 判断字符串是仅由字母和数字组成。
str_isalpha 判断字符串是否仅由字母组成。
str_isascii 判断字符串是否在ASCII中。
str_isdecimal 判断字符串是否仅包含十进制字符。
str_isdigit 判断字符串是否仅由数字组成。
str_isidentifier 判断字符串是否是有效的Python标识符,也可以用来判断变量名是否合法。
str_islower 判断字符串是否由小写字母组成。
str_isnumeric 判断字符串是否由数字组成。
str_isprintable 判断字符串中是否所有字符都是可打印字符。
str_isspace 判断字符串是否仅由空格字符组成。
str_istitle 判断字符串中所有单词的拼写首字母是否为大写,且其他字母为小写。
str_isupper 字符串中所有的字母是否都为大写。
str_uuid 生成随机UUID。
日期时间函数 dt_parse 将值或时间表达式的值转换为日期时间对象。
dt_str 将值或时间表达式的值转换为字符串。
dt_parsetimestamp 将值或时间表达式的值转换为Unix时间戳。
dt_prop 获取值或时间表达式值的特定属性。
dt_now 获取当前日期时间。
dt_today 获取当前日期,不含时间。
dt_utcnow 获取当前时区的当前日期时间。
dt_fromtimestamp 将Unix时间戳转换为日期时间对象。
dt_utcfromtimestamp 将Unix时间戳转换为当前时区的日期时间对象。
dt_strptime 将时间字符串解析为日期时间对象。
dt_currentstamp 获取Unix时间戳。
dt_totimestamp 将日期时间对象转换为Unix时间戳。
dt_strftime 将日期时间对象按照指定格式转换为字符串。
dt_strftimestamp 将Unix时间戳按照指定格式转换为字符串。
dt_truncate 从值或时间表达式中截取指定的时间粒度。
dt_add 根据指定的时间粒度修改值或时间表达式的值。
dt_MO dt_add函数中传递给weekday参数用于表示特定星期一的偏移量,负数用op_neg(正数)表示。
dt_TU dt_add函数中传递给weekday参数用于表示特定星期二的偏移量,负数用op_neg(正数)表示。
dt_WE dt_add函数中传递给weekday参数用于表示特定星期三的偏移量,负数用op_neg(正数)表示。
dt_TH dt_add函数中传递给weekday参数用于表示特定星期四的偏移量,负数用op_neg(正数)表示。
dt_FR dt_add函数中传递给weekday参数用于表示特定星期五的偏移量,负数用op_neg(正数)表示。
dt_SA dt_add函数中传递给weekday参数用于表示特定星期六的偏移量,负数用op_neg(正数)表示。
dt_SU dt_add函数中传递给weekday参数用于表示特定星期日的偏移量,负数用op_neg(正数)表示。
dt_astimezone 将值或时间表达式的值转换为特定时区的日期时间对象。
dt_diff 按照特定粒度获取两个值或时间表达式值的差异值。
正则表达式函数 regex_select 根据正则表达式提取特定的值。
regex_findall 根据正则表达式获得符合条件的所有值的一个列表。
regex_match 判断是否匹配正则表达式。
regex_replace 根据正则表达式替换字符串中的指定字符。
regex_split 将一个字符串分割成字符串数组。
GROK函数 grok 根据正则表达式提取特定的值。
特定结构化数据函数 json_select 根据JMES语法提取或计算JSON表达式中特定的值。
json_parse 将值解析为JSON对象。
xml_to_json 将xml转成JSON再做展开操作。
pb_to_json 将Protobuf数据转成JSON数据。
geo_parse 根据IP地址解析出所属国家省市信息。
gzip_compress 压缩数据,返回一个数据压缩后再进行base64编码的数据对象。
gzip_decompress 对数据进行base64解码后,再对数据解压缩,返回一个包含解压数据的对象。
ip_cidrmatch 判断IP地址是否属于CIDR地址块。
ip_version 判断IP地址为IPv4还是IPv6。
ip_type 判断IP地址为私有地址还是公有地址。
ip_makenet 将单个IP地址转换为CIDR地址块。
ip_to_format 将输入的CIDR地址块按照Prefixlen或者Netmask格式输出。
ip_overlaps 判断两个网段是否存在重叠。
编码解码函数 url_encoding 对URL类型数据进行URL编码。
url_decoding 对URL类型数据进行URL解码。
base64_encoding 对数据进行base64编码。
base64_decoding 对数据进行base64解码。
html_encoding 对数据进行HTML编码。
html_decoding 对数据进行HTML解码。
md5_encoding 对数据进行MD5编码。
sha1_encoding 对数据进行SHA1编码。
ip2long 将IP地址转换成长整型数据。
long2ip 将长整型数据转换成IP地址。
解析函数 ua_parse_device 解析User-Agent中的设备信息。
ua_parse_os 解析User-Agent中的操作系统信息。
ua_parse_agent 解析User-Agent中的浏览器信息。
ua_parse_all 解析User-Agent中所有信息。
列表函数 lst_make 构建列表。
lst_insert 在列表特定位置插入元素。
lst_append 在列表结尾添加元素。
lst_delete_at 在列表特定位置删除元素。
lst_reverse 反转列表。
lst_get 获取列表、元组中的一个数据。
字典函数 dct_make 构建字典。
dct_update 更新字典。
dct_delete 删除字典值。
dct_keys 获取字典关键字列表。
dct_values 获取字典值列表。
dct_get 获取字典关键字的值。
表格函数 tab_parse_csv 从CSV格式的文本中构建表格。
tab_to_dict 从表格构建字典。
资源函数 res_local 获取当前数据加工任务的高级参数信息。
res_rds_mysql 从RDS-MySQL中获取特定数据库表格的数据,支持定期刷新。
res_log_logstore_pull 在加工当前的Logstore数据时,拉取另一个Logstore中的数据。支持持续拉取与表格维护。
res_oss_file 从OSS中获取特定Bucket下的文件内容,并支持定期刷新。