使用 KQL 动态解析 Azure 中的日志
Dynamic parsing of logs in Azure using KQL
我在 Log-Analytics 中有几个自定义日志。我想使用另一个日志中的列来解析一个日志的列。使用 join 我可以到达所有数据都在一个 table 中的阶段。
喜欢:
标签
数据
第一个
第一=abc,第二=def,第三=ghi
第二
第一=abc,第二=def,第三=ghi
我想要另一列将相应的数据映射为:
标签
数据
价值
第一个
第一=abc,第二=def,第三=ghi
abc
第二
第一=abc,第二=def,第三=ghi
def
有没有办法解析这个。我试过使用 KQL 的解析函数和正则表达式。但它们仅用于解析固定语句。这里的 Value 不是固定的。有什么建议吗?
datatable(label:string, data:string) [
'First', 'First=abc , Second=def , Third=ghi',
'Second', 'First=abc , Second=def , Third= ghi',
'Third', 'First=abc , Second=def , Third= ghi'
]
| project label, data = split(data, ',')
| mv-expand bagexpansion=array data to typeof(string)
| project label, data = split(data, '=')
| where label == trim(' ', tostring(data[0]))
| project label, value = trim(' ', tostring(data[1]))
我在 Log-Analytics 中有几个自定义日志。我想使用另一个日志中的列来解析一个日志的列。使用 join 我可以到达所有数据都在一个 table 中的阶段。 喜欢:
标签 | 数据 |
---|---|
第一个 | 第一=abc,第二=def,第三=ghi |
第二 | 第一=abc,第二=def,第三=ghi |
我想要另一列将相应的数据映射为:
标签 | 数据 | 价值 |
---|---|---|
第一个 | 第一=abc,第二=def,第三=ghi | abc |
第二 | 第一=abc,第二=def,第三=ghi | def |
有没有办法解析这个。我试过使用 KQL 的解析函数和正则表达式。但它们仅用于解析固定语句。这里的 Value 不是固定的。有什么建议吗?
datatable(label:string, data:string) [
'First', 'First=abc , Second=def , Third=ghi',
'Second', 'First=abc , Second=def , Third= ghi',
'Third', 'First=abc , Second=def , Third= ghi'
]
| project label, data = split(data, ',')
| mv-expand bagexpansion=array data to typeof(string)
| project label, data = split(data, '=')
| where label == trim(' ', tostring(data[0]))
| project label, value = trim(' ', tostring(data[1]))