tencent cloud

日志服务

动态与公告
产品动态
公告
新手指引
产品简介
产品概述
产品优势
地域和访问域名
规格与限制
基本概念
购买指南
计费概述
产品定价
按量计费(后付费)
欠费说明
清理日志服务资源
成本优化
常见问题
快速入门
一分钟入门指南
入门指南
使用 Demo 日志快速体验 CLS
操作指南
资源管理
权限管理
日志采集
指标采集
日志存储
指标存储
检索分析(日志主题)
检索分析(指标主题)
仪表盘
数据处理
投递与消费
监控告警
云产品中心
DataSight 独立控制台
历史文档
实践教程
日志采集
检索分析
仪表盘
监控告警
投递和消费
成本优化
开发者指南
通过 iframe 内嵌 CLS(旧方案)
通过 Grafana 使用 CLS
API 文档
History
Introduction
API Category
Making API Requests
Topic Management APIs
Log Set Management APIs
Index APIs
Topic Partition APIs
Machine Group APIs
Collection Configuration APIs
Log APIs
Metric APIs
Alarm Policy APIs
Data Processing APIs
Kafka Protocol Consumption APIs
CKafka Shipping Task APIs
Kafka Data Subscription APIs
COS Shipping Task APIs
SCF Delivery Task APIs
Scheduled SQL Analysis APIs
COS Data Import Task APIs
Data Types
Error Codes
常见问题
健康监测问题解释
采集相关
检索分析相关
其他问题
服务等级协议
CLS 政策
隐私协议
数据处理和安全协议
联系我们
词汇表

流程控制

PDF
聚焦模式
字号
最后更新时间: 2024-01-20 17:59:06

简介

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




compose 函数

函数定义

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

语法描述

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

参数说明

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

示例

示例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),log_output("target")), log_output("target2"))
加工结果,target 输出:
{"new":"1","condition1":"0","condition2":"1","status":"500"}

t_if 函数

函数定义

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

语法描述

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 函数

函数定义

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

语法描述

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 函数

函数定义

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

语法描述

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

参数说明

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

示例

原始日志:
{"condition": 1, "status": "500"}
加工规则:
t_if_else(v("condition"), fields_set("new", 1), fields_set("new", 2))
加工结果:
{"new":"1","condition":"1","status":"500"}

t_switch 函数

函数定义

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

语法描述

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

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
可变参,交替的条件和函数表达式作为参数
参考 t_if 函数,类似多个 t_if 组合
-
-
-
-

示例

原始日志:
{"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"}


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈