简体   繁体   中英

Azure Application Insights | KQL | customDimensions column containing array of objects

We are using Azure application Insights for error logging. I am new to KQL and trying to fetch custom properties from inbuilt "customDimensions" column in the following format,

Value as is from "customDimensions" column

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\"}]"
}

Expected Output

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

How can I achieve the above output using KQL?

Thank You.

This might seem a little bit tricky, but bear with me :-)

  • Every sub-element extracted from a dynamic element, is dynamic.
  • parse_json() / todynamic() when given a dynamic argument, returns it, As Is.
    So first, we use tostring() and only then we use todynamic() so the string would be parsed as json, to dynamic type.

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

Fiddle

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM