日志服务 流程控制

流程控制的逻辑在常用的编程语言和 DSL 函数中是一样的,区别在于写法不同。如下图所示:
。

相关产品
日志服务 产品页,含版本规格、价格与购买入口。

三、函数定义

组合操作函数,类似于分支代码块的组合能力,可以组合多个操作函数,并按顺序执行,可以结合分支、输出函数使用。

四、语法描述

compose(函数1,函数2, …)

五、参数说明

参数名称 参数描述 参数类型 是否必须 参数默认值 参数取值范围
可变参,函数 参数必须为返回类型为 LOG 的函数 函数表达式 至少一个函数参数 – –

六、示例

·示例1:顺序调用函数,先执行 enrich 函数,然后是 fields_set 函数。

原始日志:

{"status": "500"}

加工规则:

//1. enrich函数:使用dict中的数据,对原始日志进行富化,status字段值为500,富化出新字段message,值为Failed。//2. fields_Set函数,新增一个字段new,赋值1。compose(enrich_dict("{\\"200\\":\\"SUCCESS\\",\\"500\\":\\"FAILED\\"}", "status", output="message"), fields_set("new", 1))

加工结果:

//最后结果是三个字段,如下:{"new":"1","message":"FAILED","status":"500"}

·示例2

原始日志:

{"status": "500"}

加工规则:

compose(fields_set("new", 1))

加工结果:

{"new":"1","status":"500"}

·示例3

原始日志:

{"condition1": 0,"condition2": 1, "status": "500"}

加工规则:

t_if_else(v("condition2"), compose(fields_set("new", 1),fields_set("target1","1")), fields_set("target2","0"))

加工结果,target 输出:

{"new":"1","condition1":"0","condition2":"1","status":"500","target1":"1"}

八、函数定义

对符合条件的日志,进行相应的函数处理,否则不进行任何处理。

九、语法描述

t_if(条件1, 函数1)

十、参数说明

参数名称 参数描述 参数类型 是否必须 参数默认值 参数取值范围
condition 返回值为 BOOL 类型的函数表达式 BOOL 是 – –
function 返回值为 LOG 类型的函数表达式 string 是 – –

十一、示例

·示例1

原始日志:

{"condition": 1, "status": "500"}

加工规则:

t_if(True, fields_set("new", 1))

加工结果:

{"new":"1","condition":"1","status":"500"}

·示例2

原始日志:

//如果 condition 字段的值为真,新增一个字段 new 并赋值1。{"condition": 1, "status": "500"}

加工规则:

t_if(v("condition"), fields_set("new", 1))

加工结果:

{"new":"1","condition":"1","status":"500"}

十三、函数定义

对不符合条件的日志,进行相应的函数处理,否则不进行任何处理。

十四、语法描述

t_if_not(条件1, 函数1)

十五、参数说明

参数名称 参数描述 参数类型 是否必须 参数默认值 参数取值范围
condition 返回值为 BOOL 类型的函数表达式 BOOL 是 – –
function 返回值为 LOG 类型的函数表达式 string 是 – –

十六、示例

原始日志:

{"condition": 0, "status": "500"}

加工规则:

t_if_not(v("condition"), fields_set("new", 1))

加工结果:

{"new":"1","condition":"0","status":"500"}

十八、函数定义

基于条件判断,分别进行不同的函数处理。

十九、语法描述

t_if_else(条件1, 函数1, 函数2)

20、参数说明

参数名称 参数描述 参数类型 是否必须 参数默认值 参数取值范围
condition 返回值为 BOOL 类型的函数表达式 BOOL 是 – –
function 返回值为 LOG 类型的函数表达式 string 是 function1 –
function 返回值为 LOG 类型的函数表达式 string 是 function2 –

21、示例

原始日志:

{"condition": 1, "status": "500"}

加工规则:

t_if_else(v("condition"), fields_set("new", 1), fields_set("new", 2))

加工结果:

{"new":"1","condition":"1","status":"500"}

23、函数定义

基于多分支条件,分别进行不同的函数处理,如果存在不符合所有条件的数据,将被丢弃。

24、语法描述

t_switch(条件1, 函数1, 条件2, 函数2, …)

25、参数说明

参数名称 参数描述 参数类型 是否必须 参数默认值 参数取值范围
可变参,交替的条件和函数表达式作为参数 参考 t_if 函数,类似多个 t_if 组合 function 至少一组条件和函数表达式,且参数需按 条件, 函数 成对传入。 – –

26、示例

原始日志:

{"condition1": 0,"condition2": 1, "status": "500"}

加工规则:

//condition1字段值为真时,新增字段new并赋值1,由于此处字段值返回假,因此不会新增"new":"1",第二个条件返回真,所以新增了"new":"2"t_switch(v("condition1"), fields_set("new", 1), v("condition2"), fields_set("new", 2))

加工结果:

{"new":"2","condition1":"0","condition2":"1","status":"500"}

赞 (0)
上一篇 4天前
下一篇 4天前