云日志服务 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参考
- 场景代码示例
- 常见问题
- 视频帮助
- 文档下载
- 通用参考
本文导读
链接复制成功!
特定结构化数据函数
本文介绍特定结构化数据函数的语法规则,包括参数解释、函数示例等。
类型 |
函数 |
说明 |
---|---|---|
JSON |
根据JMES语法提取或计算JSON表达式中特定的值。 |
|
将值解析为JSON对象。 |
||
XML |
将xml数据转成JSON数据。 |
json_select
根据JMES语法提取或计算JSON表达式中特定的值。
- 函数格式
json_select(value, jmes, default=None, restrict=false)
- 参数说明
参数
类型
是否必填
说明
value
String、JSON
是
传入待提取字段的JSON表达式或字段。
jmes
String
是
JMES表达式,表示提取的字段。
default
String
否
如果提取字段不存在,则返回此处设置的值。默认为None,表示不返回字段。
restrict
Bool
否
提取字段的值不是合法的JSON格式时,是否严格限制加工。 默认值false。
- false:忽略报错,数据加工继续处理,返回default定义的值。
- true:直接报错,数据加工不再继续处理,直接丢弃该条日志。
- 返回结果
返回提取到的值。
- 函数示例
- 示例1:从content字段提取元素name的值。
- 测试数据
{ "content": {"name": "xiaoming", "age": 10} }
- 加工规则
e_set("json_filter",json_select(v("content"), "name"))
- 加工结果
content: {"name": "xiaoming", "age": 10} json_filter: xiaoming
- 测试数据
- 示例2:从content字段提取元素name包含的所有值。
- 测试数据
{ "content": {"name": ["xiaoming", "xiaowang", "xiaoli"], "age": 10} }
- 加工规则
e_set("json_filter", json_select(v("content"), "name[*]"))
- 加工结果
content: {"name": ["xiaoming", "xiaowang", "xiaoli"], "age": 10} json_filter: ["xiaoming", "xiaowang", "xiaoli"]
- 测试数据
- 示例3:从content字段提取元素name3的值,若字段不存在,则返回default的值。
- 测试数据
{ "content": {"name": "xiaoming", "age": 10} }
- 加工规则
e_set("json_filter", json_select(v("content"), "name3", default="None"))
- 加工结果
content: {"name": "xiaoming", "age": 10} json_filter: None
- 测试数据
- 示例4:从content字段提取携带短划线(-)的元素name-test的值。
- 测试数据
{ "content": {"name": {"name-test":"xiaoming"}, "age": 10} }
- 加工规则
e_set("json_filter", json_select(v("content"), 'name."name-test"', default=None))
- 加工结果
content: {"name": {"name-test":"xiaoming"}, "age": 10} json_filter: xiaoming
- 测试数据
- 示例5:从content字段提取携带短划线(-)的元素name-test的值,若元素不存在,则不返回字段。
- 测试数据
{ "content": {"name": {"name.test":"xiaoming"}, "age": 10} }
- 加工规则
e_set("json_filter", json_select(v("content"), 'name."name-test"', default=None))
- 加工结果
content: {"name": {"name-test":"xiaoming"}, "age": 10}
- 测试数据
- 示例1:从content字段提取元素name的值。
json_parse
将值解析为JSON对象。
- 函数格式
json_parse(value, default=None, restrict=false)
- 参数说明
参数
类型
是否必填
说明
value
String
是
传入需要被解析的字段。
default
String
否
如果解析字段不存在,则返回此处设置的值。默认为None,表示不返回字段。
restrict
Bool
否
解析字段的值不是合法的JSON格式时,是否严格限制加工。 默认值false。
- false:忽略报错,数据加工继续处理,返回default定义的值。
- true:直接报错,数据加工不再继续处理,直接丢弃该条日志。
- 返回结果
返回转换后的JSON对象。
- 函数示例
- 示例1:提取content字段的JSON值。
- 测试数据
{ "content": {"abc": 123, "xyz": "test" } }
- 加工规则
e_set("json", json_parse(v("content")))
- 加工结果
content: {"abc": 123, "xyz": "test" } json: {"abc": 123, "xyz": "test"}
- 测试数据
- 示例2:提取content字段的值,如果不是JSON格式,则返回default的值。
- 测试数据
{ "content": "this is not json" }
- 加工规则
e_set("json", json_parse(v("content"), default="FFF", restrict=false))
- 加工结果
content: this is not json json: FFF
- 测试数据
- 示例1:提取content字段的JSON值。
xml_to_json
将xml数据转成JSON数据。
- 函数格式
xml_to_json(source)
- 参数说明
参数
类型
是否必填
说明
source
String
是
传入需要被转换的字段。
- 返回结果
返回转换后的JSON数据。
- 函数示例
- 测试数据
{ "str": "<data><country name=\"Liechtenstein\"><rank>1</rank><year>2008</year><gdppc>141100</gdppc><neighbor name=\"Austria\" direction=\"E\"/><neighbor name=\"Switzerland\" direction=\"W\"/></country><country name=\"Singapore\"><rank>4</rank><year>2011</year><gdppc>59900</gdppc><neighbor name=\"Malaysia\" direction=\"N\"/></country><country name=\"Panama\"><rank>68</rank><year>2011</year><gdppc>13600</gdppc><neighbor name=\"Costa Rica\" direction=\"W\"/><neighbor name=\"Colombia\" direction=\"E\"/></country></data>" }
- 加工规则
e_set("str_json",xml_to_json(v("str")))
- 加工结果
str:<data><country name="Liechtenstein"><rank>1</rank><year>2008</year><gdppc>141100</gdppc><neighbor name="Austria" direction="E"/><neighbor name="Switzerland" direction="W"/></country><country name="Singapore"><rank>4</rank><year>2011</year><gdppc>59900</gdppc><neighbor name="Malaysia" direction="N"/></country><country name="Panama"><rank>68</rank><year>2011</year><gdppc>13600</gdppc><neighbor name="Costa Rica" direction="W"/><neighbor name="Colombia" direction="E"/></country></data> str_json:{"data": {"country": [{"@name": "Liechtenstein", "rank": "1", "year": "2008", "gdppc": "141100", "neighbor": [{"@name": "Austria", "@direction": "E"}, {"@name": "Switzerland", "@direction": "W"}]}, {"@name": "Singapore", "rank": "4", "year": "2011", "gdppc": "59900", "neighbor": {"@name": "Malaysia", "@direction": "N"}}, {"@name": "Panama", "rank": "68", "year": "2011", "gdppc": "13600", "neighbor": [{"@name": "Costa Rica", "@direction": "W"}, {"@name": "Colombia", "@direction": "E"}]}]}}
- 测试数据
父主题: 操作符函数