我们正在使用 Azure 应用程序 Insights 进行错误日志记录。我是 KQL 新手,并尝试按以下格式从内置的“customDimensions”列中获取自定义属性,
“customDimensions”列中的值
exceptions
| project customDimensions
{
"File Name":"Sample File 1",
"Correlation ID":"e33a8d45-1234-1234-1223-54a6fec30356",
"Error List":"[
{\"Function Name\":\"Sample Function 1\",\"Code\":\"12345\"},
{\"Function Name\":\"Sample-Function-2\",\"Code\":\"12343\"}]"
}
预期输出
如何使用 KQL 实现上述输出?
谢谢。
最佳答案
这可能看起来有点棘手,但请耐心等待:-)
- 从动态元素中提取的每个子元素都是动态的。
- parse_json() / todynamic()当给定动态参数时,按原样返回它。
首先,我们使用tostring()然后我们才使用 todynamic() ,这样字符串就会被解析为 json,动态类型。
datatable(ErrorDetails:dynamic)
[
dynamic({
"File Name":"Sample File 1",
"Correlation ID":"e33a8d45-0566-4bf2-94f8-54a6fec29bff",
"Error List":"[{\"Function Name\":\"Sample Function 1\",\"Code\":\"12345\"},{\"Function Name\":\"Sample-Function-2\",\"Code\":\"12343\"}]"
})
]
| mv-expand EL = todynamic(tostring(ErrorDetails["Error List"]))
| project ["File Name"] = ErrorDetails["File Name"], ["Correlation ID"] = ErrorDetails["Correlation ID"], ["Function Name"] = EL["Function Name"], ["Code"] = EL["Code"]
关于Azure 应用程序洞察 | KQL|包含对象数组的 customDimensions 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72436650/