云日志服务 LTS-提取字符串动态键值对:关键字提取
时间:2025-02-12 15:14:38
关键字提取
- 示例1
以k1: q=asd&a=1&b=2&__1__=3日志为例,如果要对该格式的日志作为关键字和值提取,三种方案如下:
- e_kv函数
- 原始日志
{ "k1":"q=asd&a=1&b=2&__1__=3"}
- 加工规则
e_kv("k1")
- 加工结果
{"q": "asd","a": 1,"b": 2,"k1": "q=asd&a=1&b=2&__1__=3","__1__": 3}
- 原始日志
- e_kv_delimit函数
- 原始日志
{ "k1":"q=asd&a=1&b=2&__1__=3"}
- 加工规则
# 以&分隔键值后,用&分隔提取出关键字e_kv_delimit("k1", pair_sep=r"&")
- 加工结果
{"q": "asd","a": 1,"b": 2,"k1": "q=asd&a=1&b=2&__1__=3","__1__": 3}
- 原始日志
- e_regex函数
- 原始日志
{ "k1":"q=asd&a=1&b=2&__1__=3"}
- 加工规则
# 自行指定字符集提取关键字和值e_regex("k1",r"(\w+)=([a-zA-Z0-9]+)",{r"\1": r"\2"})
- 加工结果
{"q": "asd","a": 1,"b": 2,"k1": "q=asd&a=1&b=2&__1__=3","__1__": 3}
- 原始日志
- e_kv函数
- 示例2
以content:k1=v1&k2=v2?k3:v3为例,需要特定正则提取关键字,方案如下:
- e_kv_delimit函数
- 原始日志
{ "content":"k1=v1&k2=v2?k3:v3"}
- 加工规则
e_kv_delimit("content",pair_sep=r"&?",kv_sep="(?:=|:)")
- 加工结果
{"k1": "v1","k2": "v2","k3": "v3","content": "k1=v1&k2=v2?k3:v3"}
- 原始日志
- e_regex函数
- 原始日志
{ "content":"k1=v1&k2=v2?k3:v3"}
- 加工规则
e_regex("content",r"([a-zA-Z0-9]+)[=|:]([a-zA-Z0-9]+)",{r"\1": r"\2"})
- 加工结果
{"k1": "v1","k2": "v2","k3": "v3","content": "k1=v1&k2=v2?k3:v3"}
- 原始日志
- e_kv_delimit函数
support.huaweicloud.com/bestpractice-lts/lts_07_0053.html