云日志服务 LTS
云日志服务 LTS
- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- 授权IAM用户使用云日志服务LTS
- 购买LTS资源包
- 日志管理
-
日志接入
- 日志接入概述
- 使用ICAgent插件采集日志
-
使用云服务接入LTS
- 云服务接入LTS概述
- 应用运维管理AOM接入LTS
- API网关APIG接入LTS
- Astro轻应用接入LTS
- 云堡垒机CBH接入LTS
- 内容分发网络CDN接入LTS
- 云防火墙CFW接入LTS
- 云审计服务CTS接入LTS
- 分布式缓存服务DCS接入LTS
- 文档数据库服务DDS接入LTS
- DDoS防护 AAD接入LTS
- 分布式消息服务Kafka版接入LTS
- 数据复制服务DRS接入LTS
- 数据仓库服务GaussDB(DWS)接入LTS
- 弹性负载均衡 ELB接入LTS
- 企业路由器ER接入LTS
- 函数工作流FunctionGraph接入LTS
- 云数据库GaussDB接入LTS
- 图引擎服务GES接入LTS
- 云数据库 TaurusDB接入LTS
- 云数据库GeminiDB接入LTS
- 云数据库GeminiDB Mongo接入LTS
- 云数据库GeminiDB Cassandra接入LTS
- 华为HiLens接入LTS
- 设备接入IoTDA接入LTS
- AI开发平台ModelArts接入LTS
- MapReduce服务MRS接入LTS
- 云数据库RDS for MySQL接入LTS
- 云数据库RDS for PostgreSQL接入LTS
- 云数据库RDS for SQLServer接入LTS
- 应用与数据集成平台ROMA Connect接入LTS
- 视频直播Live接入LTS
- 消息通知服务SMN接入LTS
- 安全云脑SecMaster接入LTS
- 对象存储服务OBS接入LTS(邀测)
- 虚拟私有云VPC接入LTS
- Web应用防火墙WAF接入LTS
- 使用API接入LTS
- 使用SDK接入LTS
- 跨IAM账号接入LTS
- 使用KAFKA协议上报日志到LTS
- 使用Flume采集器上报日志到LTS
- 使用匿名写入采集日志
- 自建中间件
- 日志搜索与分析(默认推荐)
- 日志搜索与分析(管道符方式-邀测)
- 日志可视化
- 日志告警
- 日志转储
- 日志消费与加工
- LTS配置中心管理
- 查看LTS审计事件
- 最佳实践
- 开发指南
- API参考
- SDK参考
- 场景代码示例
- 常见问题
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
使用DSL加工函数进行事件判断
通过事件判断可以更好地对符合特定条件的数据进行相应操作,让加工逻辑更可靠。本文主要介绍使用函数进行事件判断的常见场景和最佳方案示例。
场景一:判断字段是否存在
- 原始日志
{ "a": "a_value" }
- 加工规则
e_if(e_has("a"),e_set("has_a", true)) e_if(e_has("b"),e_set("has_b", true)) e_if(e_not_has("a"),e_set("not_has_a", true)) e_if(e_not_has("b"),e_set("not_has_b", true))
- 加工结果
{ "a": "a_value", "not_has_b": true, "has_a": true }
场景二:判断字段值是否存在且不为空
- 原始日志
{ "a": "a_value", "b":"" }
- 加工规则
e_if_else(v("a"), e_set("not_empty_a", true),e_set("not_empty_a", false)) e_if_else(v("b"), e_set("not_empty_b", true),e_set("not_empty_b", false))
- 加工结果
{ "a": "a_value", "not_empty_b": false, "b": "", "not_empty_a": true }
场景三:判断字段值是否存在且为空
- 原始日志
{ "a": "a_value", "b":"" }
- 加工规则
e_if_else(op_and(e_has("a"), op_not(v("a"))), e_set("empty_a", true),e_set("empty_a", false)) e_if_else(op_and(e_has("b"), op_not(v("b"))), e_set("empty_b", true),e_set("empty_b", false))
- 加工结果
{ "a": "a_value", "b": "", "empty_b": true, "empty_a": false }
场景四:基于字段值的逻辑查询判断
- 原始日志
[ { "http_host": "example.com", "status": 200, "request_method": "GET", "scheme": "https", "header_length": 700, "body_length": 1200 }, { "http_host": "example.org", "status": 200, "request_method": "POST", "scheme": "https", "header_length": 100, "body_length": 800 }, { "http_host": "example.net", "status": 200, "request_method": "GET", "scheme": "http", "header_length": 200, "body_length": 800 }, { "http_host": "example.cn", "status": 404, "request_method": "GET", "scheme": "https", "header_length": 100, "body_length": 300 } ]
- 加工需求1:为所有status字段值为200的日志事件,添加一个新字段type,其值为normal。
加工结果:
{ "scheme": "https", "header_length": 700, "request_method": "GET", "type": "normal", "http_host": "example.com", "status": 200, "body_length": 1200 } { "scheme": "https", "header_length": 100, "request_method": "POST", "type": "normal", "http_host": "example.org", "status": 200, "body_length": 800 } { "scheme": "http", "header_length": 200, "request_method": "GET", "type": "normal", "http_host": "example.net", "status": 200, "body_length": 800 } { "scheme": "https", "header_length": 100, "request_method": "GET", "http_host": "example.cn", "status": 404, "body_length": 300 }
- 加工需求2:为所有status字段值为200,且request_method字段值为GET,且scheme字段值为https的日志事件添加一个新字段type,其值为normal。
加工规则:
e_if(e_match_all("status", "200", "request_method","GET", "scheme", "https"), e_set("type", "normal"))
加工结果:{ "scheme": "https", "header_length": 700, "request_method": "GET", "type": "normal", "http_host": "example.com", "status": 200, "body_length": 1200 } { "scheme": "https", "header_length": 100, "request_method": "POST", "http_host": "example.org", "status": 200, "body_length": 800 } { "scheme": "http", "header_length": 200, "request_method": "GET", "http_host": "example.net", "status": 200, "body_length": 800 } { "scheme": "https", "header_length": 100, "request_method": "GET", "http_host": "example.cn", "status": 404, "body_length": 300 }
- 加工需求3:为所有status字段值为200,或request_method字段值为GET,或scheme字段值为https的日志事件添加一个字段type,其值为normal。
加工规则:
e_if(e_match_any("status", "200", "request_method","GET", "scheme", "https"), e_set("type", "normal"))
加工结果:{ "scheme": "https", "header_length": 700, "request_method": "GET", "type": "normal", "http_host": "example.com", "status": 200, "body_length": 1200 } { "scheme": "https", "header_length": 100, "request_method": "POST", "type": "normal", "http_host": "example.org", "status": 200, "body_length": 800 } { "scheme": "http", "header_length": 200, "request_method": "GET", "type": "normal", "http_host": "example.net", "status": 200, "body_length": 800 } { "scheme": "https", "header_length": 100, "request_method": "GET", "type": "normal", "http_host": "example.cn", "status": 404, "body_length": 300 }
父主题: 日志加工(邀测)