云服务器内容精选
-
e_output、e_coutput 输出日志到指定的r日志流中,并可配置输出时tag信息。 函数格式 e_output(logsteam, tags=None) e_coutput(logstream, tags=None) 预览时不会输出日志到目标日志流中,而是输出到页面,供您调试。 参数说明 参数名称 参数类型 是否必填 说明 logstream String 否 需要输出日志流的代称,日志流代称在创建加工任务时配置目标日志流时指定。 tags Dict 否 为日志设置新的标签,以字典格式传入。 加工结果 e_output:输出日志到指定的日志流中,且对应的日志不再执行后面的加工规则。 e_coutput:输出日志到指定的日志流中,且对应的日志继续执行后面的加工规则。 函数示例 示例1:将k2满足正则表达式,输出到target2中。 测试数据 { "k1": "v1", "k2":"v2", "x1":"v3" , "x5": "v4" } 加工规则 此处e_drop()函数的作用是把e_if()函数过滤掉的数据做删除处理。如果不添加该函数,则被过滤的数据被投递到默认的存储目标中。创建任务时配置的第一条目标日志流为默认目标。 e_if(e_match("k2", r"\w+"), e_output("target2")) e_drop() 加工结果 { "k1": "v1", "k2": "v2", "x1": "v3", "x5": "v4" } 在结果预览处可以看到目标日志流代称变成了target2。 示例2:将k2满足正则表达式,输出到target2中,并设置tag。 测试数据 { "k1": "v1", "k2":"v2", "x1":"v3" , "x5": "v4" } 加工规则 e_if(e_match("k2", r"\w+"), e_output("target2", tags={"topic": "topic1"})) e_drop() 加工结果 { "k1": "v1", "__tag__": { "topic": "topic1" }, "k2": "v2", "x1": "v3", "x5": "v4" } 在结果预览处可以看到目标日志流代称变成了target2。 更多参考 支持和其他函数组合使用。
-
e_split 基于日志字段的值分裂出多条日志,并且支持通过JMES提取字段后再进行分裂。 函数格式 e_split(字段名, sep=',', quote='"', lstrip=true, jmes=None, output=None) 分裂规则: 如果配置了jmes参数,则将日志字段的值转化为JSON列表,并使用JMES提取值作为下一步的值。如果没有配置jmes参数,则将字段的值直接作为下一步的值。 如果上一步的值是一个列表或JSON列表格式的字符串,则按照此列表分裂并结束处理。否则使用sep、quote或lstrip将上一步的值进行 CS V解析,根据解析后的多个值进行分裂并结束处理。 参数说明 参数名称 参数类型 是否必填 说明 字段名 String 是 需要分裂的字段名。 sep String 否 用于分隔多个值的分隔符。 quote String 否 用于引用多个值的配对类字符的引用符。 lstrip String 否 是否将值左边的空格去掉,默认为true。 jmes String 否 将字段值转化为JSON对象,并使用JMES提取特定值,再进行分裂操作。 output String 否 设置一个新的字段名,默认覆盖旧字段名。 返回结果 返回日志列表,列表中字段的值都是源列表中的值。 函数示例 测试数据 { "__topic__": "", "age": 18, "content": 123, "name": "maki" } 加工规则 e_set("__topic__", "V_SENT,V_RECV,A_SENT,A_RECV") e_split("__topic__") 加工结果 [ { "__topic__": "V_SENT", "name": "maki", "age": 18, "content": 123 }, { "__topic__": "V_RECV", "name": "maki", "age": 18, "content": 123 }, { "__topic__": "A_SENT", "name": "maki", "age": 18, "content": 123 }, { "__topic__": "A_RECV", "name": "maki", "age": 18, "content": 123 } ] 更多参考 支持和其他函数组合使用。
-
e_drop 根据条件判断是否丢弃日志。 函数格式 e_drop(condition=true) 支持固定标识DROP,等价于e_drop()。 参数说明 参数名称 参数类型 是否必填 说明 condition Bool 否 默认为true,一般传递一个条件判断函数的结果。 返回结果 满足条件则丢弃日志并返回None,否则返回原日志。 函数示例 示例1:当__programe__字段的值为access时丢弃日志,否则保留该日志。 测试数据 [ { "__programe__": "access", "age": 18, "content": 123, "name": "maki" }, { "__programe__": "error", "age": 18, "content": 123, "name": "maki" } ] 加工规则 e_if(e_search("__programe__==access"), DROP) 加工结果 丢弃__programe__字段值为access的日志,保留__programe__字段的值为error的日志。 __programe__: error age: 18 content: 123 name: maki 示例2:条件判断结果为true,丢弃日志。 测试数据 { "k1":"v1" , "k2": "v2", "k3": "k1" } 加工规则 e_drop(e_search("k1==v1")) 加工结果 因为k1==v1条件为true,因此丢弃该日志。 示例3:条件判断结果为false,保留日志。 测试数据 { "k1":"v1" , "k2": "v2", "k3": "k1" } 加工规则 e_drop(e_search("not k1==v1")) 加工结果 k1: v1 k2: v2 k3: k1 示例4:不设置判断条件时,使用默认值true,丢弃日志。 测试数据 { "k1":"v1" , "k2": "v2", "k3": "k1" } 加工规则 e_drop() 加工结果 丢弃日志。 更多参考 支持和其他函数组合使用。
-
函数列表 类型 函数 说明 事件操作 e_drop 根据条件判断是否丢弃日志。支持和其他函数组合使用。 e_keep 根据条件判断是否保留日志。 e_keep函数和e_drop函数都会丢弃日志。e_keep函数在不满足条件时丢弃,而e_drop函数则是在满足条件时丢弃。 # 以下4个加工规则等价 e_if_else(e_search("f1==v1"), e_keep(), e_drop()) e_if_else(e_search("not f1==v1"), e_drop()) e_keep(e_search("f1==v1")) e_drop(e_search("not f1==v1")) # 以下加工规则无意义 e_if(e_search("..."), e_keep()) e_keep() 支持和其他函数组合使用。 事件分裂 e_split 基于日志字段的值分裂出多条日志,并且支持通过JMES提取字段后再进行分裂。支持和其他函数组合使用。 输出事件 e_output、e_coutput 输出日志到指定的日志流代称中(日志流代称在创建加工任务时配置目标日志流时指定),并可配置输出时的tag信息。 e_output:执行到e_output函数时,输出日志到指定的日志流中,且对应的日志不再执行后面的加工规则。 e_coutput:执行到e_coutput函数时,输出日志到指定的日志流中,且对应的日志继续执行后面的加工规则。 支持和其他函数组合使用。
-
e_keep 据条件判断是否保留日志。 函数格式 e_keep(condition=true) 支持固定标识KEEP,等价于e_keep()。 参数说明 参数名称 参数类型 是否必填 说明 condition Bool 否 默认为true,一般传递一个条件判断函数的结果。 返回结果 满足条件则返回原日志,不满足时丢弃日志。 函数示例 示例1:当__programe__字段的值是access的时候保留日志,否则丢弃日志。 测试数据 [ { "__programe__": "access" , "age": 18, "content": 123, "name": "maki" }, { "__programe__": "error" , "age": 18, "content": 123, "name": "maki" } ] 加工规则 e_keep(e_search("__programe__==access")) #等价于 e_if(e_search("not __programe__==access"), e_drop()) #等价于 e_if_else(e_search("__programe__==access"), e_keep(), e_drop()) 加工结果 保留__programe__字段值为access的日志。 __programe__: access age: 18 content: 123 name: maki 示例2:条件判断结果为true,保留日志。 测试数据 { "k1":"v1" , "k2": "v2", "k3": "k1" } 加工规则 e_keep(e_search("k1==v1")) 加工结果 k1: v1 k2: v2 k3: k1 示例3:条件判断结果为false,丢弃日志。 测试数据 { "k1":"v1" , "k2": "v2", "k3": "k1" } 加工规则 e_keep(e_search("not k1==v1")) 加工结果:丢弃日志。 示例4:判断条件为false。 测试数据 { "k1":"v1" , "k2": "v2", "k3": "k1" } 加工规则 e_keep(false) 加工结果:丢弃日志。 更多参考 支持和其他函数组合使用。
-
e_search_table_map 对某列(查询字符串)以及其匹配的值的表格数据进行映射。 函数格式 e_search_table_map(data, inpt, output_fields, multi_match=false, multi_join=" ", missing=None, mode="fill-auto") 参数说明 参数名称 数据类型 是否必填 说明 data Table 是 映射关系的表格,表格某一列必须是查询字符串。 inpt String 是 表格中用于匹配搜索的字段名。 output_fields String,String List或Tuple List 是 表格中映射出的字段,可以是字符串、列表或者其名称映射元组的列表。 multi_match Boolean 否 是否允许匹配多个字段。默认为false表示不匹配多个字段,会返回匹配到的第一个字段值。支持使用multi_join来拼接多个匹配的值。 multi_join String 否 匹配多个字段时,多值的连接字符串,默认为空格。当multi_match值为true时生效。 missing String 否 无匹配字段时,将该参数的取值赋给输出字段output_fields。默认为None表示不做映射赋值操作。 说明: 如果表格中包含默认匹配*,由于*的优先级高于missing,此时missing将不起作用。 mode String 否 字段的覆盖模式。默认为fill-auto。 返回结果 返回查询匹配中后的映射结果。 函数示例 示例1:根据映射关系的表格,将日志中city字段映射出pop和province字段。 测试数据 { "data": 123, "city": "sh" } 例如,以下映射关系的表格,其中search列是查询字符串。 search pop province city==nj 800 js city==sh 2000 sh 加工规则 e_search_table_map( tab_parse_csv("search,pop,province\ncity==nj,800,js\ncity==sh,2000,sh"), "search", ["pop", "province"], ) 加工结果 data: 123 city: sh province: sh pop: 2000 示例2:overwrite模式。 测试数据 { "data": 123, "city": "nj", "province":"" } 加工规则 e_search_table_map( tab_parse_csv("search,pop,province\ncity==nj,800,js\ncity==sh,2000,sh"), "search", "province", mode="overwrite", ) 加工结果 pop: 800 data: 123 city: nj province: js 示例3:无匹配时目标字段的值由missing指定。 测试数据 { "data": 123, "city": "wh", "province":"" } 加工规则 e_search_table_map( tab_parse_csv("search,pop,province\ncity==nj,800,\ncity==sh,2000,sh"), "search", "province", missing="Unknown", ) 加工结果 data: 123 city: wh province: Unknown 示例4:允许匹配多个字段(multi_match模式)。 测试数据 { "data": 123, "city": "nj,sh", "province":"" } 加工规则 e_search_table_map( tab_parse_csv("search,pop,province\ncity:nj,800,js\ncity:sh,2000,sh"), "search", "province", multi_match=true, multi_join=",", ) 加工结果 data: 123 city: nj,sh province: js,sh
-
e_search_dict_map 对关键字(查询字符串)以及其匹配的值的字典数据进行映射。 函数格式 e_search_dict_map(data, output_field, multi_match=false, multi_join=" ", missing=None, mode="overwrite") 参数说明 参数名称 数据类型 是否必填 说明 data Dict 是 映射关系的字典。必须为标准的{key01:value01,key01:value02,...}格式,且关键字key必须是查询字符串。 output_field String 是 输出字段的名称。 multi_match Boolean 否 是否允许匹配多个字段。默认为false表示不匹配多个字段,会返回匹配到的最后一个字段值。支持使用multi_join拼接多个匹配的值。 multi_join String 否 匹配多个字段时,多值的连接字符串,默认为空格。当multi_match值为true时生效。 missing String 否 无匹配字段时,将该参数的取值赋给输出字段output_field。默认为None表示不做映射赋值操作。 说明: 如果字典中包含默认匹配星号(*),由于星号(*)的优先级高于missing,此时missing将不起作用。 mode String 否 字段的覆盖模式。默认为overwrite。 返回结果 返回查询匹配中后的映射结果。 函数示例 示例1:匹配模式。 测试数据 { "data":123 , "pro":1 } 加工规则 e_search_dict_map ({"pro==1": "TCP", "pro==2": "UDP", "pro==3": "HTTP"}, "protocol") 加工结果 data:123 pro:1 protocol:TCP 示例2:根据字段值的不同开头进行映射。 测试数据 { "status":"200,300" } 加工规则 e_search_dict_map( { "status:2??": "ok", "status:3??": "redirect", "status:4??": "auth", "status:5??": "server_error", }, "status_desc", multi_match=true, multi_join="测试", ) 加工结果 status:200,300 status_desc:ok测试redirect 更多参考 支持和其他函数组合使用。
-
e_table_map 与目标表格进行映射,根据输入的字段名称返回字段值。 函数格式 e_table_map(data, field, output_fields, missing=None, mode="fill-auto") 参数说明 参数名称 数据类型 是否必填 说明 data Table 是 目标表格。 field String、String List或Tuple List 是 日志中映射到表格的源字段。如果日志中不存在对应字段,则不进行任何操作。 output_fields String、String List或Tuple List 是 映射后的字段。例如["province", "pop"]。 missing String 否 无匹配字段时,将该参数的取值赋给输出字段output_fields。默认为None表示不做映射赋值操作。如果目标字段是多列,则missing可以是一个长度与目标字段数一致的默认值列表。 说明 如果表格中包含匹配星号(*),由于星号(*)的优先级高于missing,此时missing参数将不起作用。 mode String 否 字段的覆盖模式。默认为fill-auto。 返回结果 返回附带新字段值的日志。 函数示例 示例1:在映射表格中查找对应行,根据city字段返回province字段的值。 测试数据 { "data": 123, "city": "nj" } 加工规则 e_table_map( tab_parse_csv("city,pop,province\nnj,800,js\nsh,2000,sh"), "city", "province" ) 加工结果 data: 123 city: nj province: js 示例2:在映射表格中查找对应行,根据city字段返回province字段和pop字段的值。 测试数据 { "data": 123, "city": "nj" } 加工规则 e_table_map( tab_parse_csv("city,pop,province\nnj,800,js\nsh,2000,sh"), "city", ["province", "pop"], ) 加工结果 data: 123 city: nj province: js pop: 800 示例3:使用tab_parse_csv函数构建映射表格,根据city字段返回province字段和pop字段的值。 测试数据 { "data": 123, "city": "nj" } 加工规则 e_table_map( tab_parse_csv("city#pop#province\nnj#800#js\nsh#2000#sh", sep="#"), "city", ["province", "pop"], ) 加工结果 data: 123 city: nj province: js pop: 800 示例4:使用tab_parse_csv函数构建映射表格,根据city字段返回province字段和pop字段的值。 测试数据 { "data": 123, "city": "nj" } 加工规则 e_table_map( tab_parse_csv( "city,pop,province\n|nj|,|800|,|js|\n|shang hai|,2000,|SHANG,HAI|", quote="|" ), "city", ["province", "pop"], ) 加工结果 data: 123 city: nj province: js pop: 800 示例5:日志匹配字段与映射表格中字段不一样。在映射表格中查找对应行,根据cty或city字段返回province字段的值。 测试数据 { "data": 123, "city": "nj" } 加工规则 e_table_map( tab_parse_csv("city,pop,province\nnj,800,js\nsh,2000,sh"), [("city", "city")], "province" ) 加工结果 data: 123 city: nj province: js 示例6:日志匹配字段与映射表格中字段不一样,并且对输出字段进行重命名。 测试数据 { "data": 123, "city": "nj" } 加工规则 e_table_map( tab_parse_csv("city,pop,province\nnj,800,js\nsh,2000,sh"), [("city", "city")], [("province", "pro")], ) 加工结果 data: 123 city: nj pro: js 示例7:多个日志匹配字段。 测试数据 { "data": 123, "city": "nj", "pop": 800 } 加工规则 e_table_map( tab_parse_csv("city,pop,province\nnj,800,js\nsh,2000,sh"), ["city", "pop"], "province", ) 加工结果 data: 123 city: nj pop: 800 province: js 示例8:多个日志匹配字段,且日志匹配字段与映射表格字段不一样。 测试数据 { "data": 123, "city": "nj", "pp": 800 } 加工规则 e_table_map( tab_parse_csv("city,pop,province\nnj,800,js\nsh,2000,sh"), [("city", "city"), ("pp", "pop")], "province", ) 加工结果 data: 123 city: nj pp: 800 province: js 更多参考 支持和其他函数组合使用。
-
e_dict_map 与目标数据字典进行映射,根据输入的字段映射一个新字段。 函数格式 e_dict_map(data, field, output_field, case_insensitive=true, missing=None, mode="overwrite") 参数说明 参数名称 数据类型 是否必填 说明 data Dict 是 目标数据字典。必须为标准的{key01:value01,key01:value02,...}格式,且必须是字符串。例如{"1": "TCP", "2": "UDP", "3": "HTTP", "*": "Unknown"}。 field String或者String List 是 一个字段名或者多个字段名的列表。多个字段时: 依次对匹配到的值进行映射。 如果匹配命中多条日志,且mode的取值为overwrite时,则最后一个会覆盖前面的结果。 当没有匹配到任何字段,则使用missing参数的值作为匹配值。 output_field String 是 输出字段的名称。 case_insensitive Boolean 否 匹配时大小写是否不敏感。 true(默认值):不敏感。 false:敏感 说明: 如果字典中存在同一个关键字的不同大小写,且case_insensitive为true时,会优先选择大小写完全匹配的值。如果没有,则随机选择一个。 missing String 否 无匹配字段时,将该参数的取值赋给输出字段output_field。默认为None表示不做映射赋值操作。 说明: 如果字典中包含匹配星号(*),由于星号(*)的优先级高于missing,此时missing参数不生效。 mode String 否 字段的覆盖模式。默认为overwrite。 取值为:fill,fill-auto,add,add-auto,overwrite,overwrite-auto 返回结果 返回附带新字段的日志。 函数示例 示例1:根据测试数据中pro字段的值和目标数据字典,输出新字段protocol。 测试数据 { "data": 123, "pro": 1 } 加工规则 e_dict_map( {"1": "TCP", "2": "UDP", "3": "HTTP", "6": "HTTPS", "*": "Unknown"}, "pro", "protocol", ) 加工结果 data: 123 pro: 1 protocol: TCP 示例2:根据测试数据中status字段的值和目标数据字典,输出新字段message。 测试数据(三条测试日志) { "status":"500" } { "status":"400" } { "status":"200" } 加工规则 e_dict_map({"400": "错误", "200": "正常", "*": "其他"}, "status", "message") 加工结果 status: 500 message: 其他 status: 400 message: 错误 status: 200 message: 正常 更多参考 支持和其他函数组合使用。
-
函数列表 类型 函数 说明 字段映射 e_dict_map 与目标数据字典进行映射,根据输入的字段映射一个新字段。支持和其他函数组合使用。 e_table_map 与目标表格进行映射,根据输入的字段名称返回字段值。支持和其他函数组合使用。 搜索映射 e_search_dict_map 对关键字(查询字符串)以及其匹配的值的字典数据进行映射。支持和其他函数组合使用。 e_search_table_map 对某列(查询字符串)以及其匹配的值的表格数据进行映射。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格