Azure 应用洞察 |知识库 |包含对象数组的 customDimensions 列
Azure Application Insights | KQL | customDimensions column containing array of objects
我们正在使用 Azure application 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\"}]"
}
预期输出
File Name
Correlation ID
Function Name
Code
Sample File 1
e33a8d45-1234-1234-1223-54a6fec30356
Sample Function 1
12345
Sample File 1
e33a8d45-1234-1234-1223-54a6fec30356
Sample-Function-2
12343
如何使用 KQL 实现上述输出?
谢谢。
这似乎有点棘手,但请耐心等待 :-)
- 从动态元素中提取的每个 sub-element 都是动态的。
- parse_json() / todynamic() 当给定一个动态参数时,returns 它,按原样。
所以首先,我们使用 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"]
File Name
Correlation ID
Function Name
Code
Sample File 1
e33a8d45-0566-4bf2-94f8-54a6fec29bff
Sample Function 1
12345
Sample File 1
e33a8d45-0566-4bf2-94f8-54a6fec29bff
Sample-Function-2
12343
我们正在使用 Azure application 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\"}]"
}
预期输出
File Name | Correlation ID | Function Name | Code |
---|---|---|---|
Sample File 1 | e33a8d45-1234-1234-1223-54a6fec30356 | Sample Function 1 | 12345 |
Sample File 1 | e33a8d45-1234-1234-1223-54a6fec30356 | Sample-Function-2 | 12343 |
如何使用 KQL 实现上述输出?
谢谢。
这似乎有点棘手,但请耐心等待 :-)
- 从动态元素中提取的每个 sub-element 都是动态的。
- parse_json() / todynamic() 当给定一个动态参数时,returns 它,按原样。
所以首先,我们使用 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"]
File Name | Correlation ID | Function Name | Code |
---|---|---|---|
Sample File 1 | e33a8d45-0566-4bf2-94f8-54a6fec29bff | Sample Function 1 | 12345 |
Sample File 1 | e33a8d45-0566-4bf2-94f8-54a6fec29bff | Sample-Function-2 | 12343 |