我正试图在Azure Application Insights中编写查询,这些查询捕获与使用Azure Bot Framework构建的机器人的交互。
我的表格中包含timestamp
,name
,customDimensions
,customDimensions
以及customDimensions
内的标题,例如
{
"conversationData": "{}",
"privateConversationData": "{\"nameForm\":{\"NAME\":\"foo\",\"ICCID\":\"12121212121212121212\"}}",
"userData": "{}",
"conversationId": "878fhiee1k33j5ci",
"userId": "default-user",
"metrics": "92.25833"
}
我可以轻松地编写查询以按名称选择项目
customEvents
| where name contains "Activity"
但是如何根据对象中的键进行选择,例如上面privateConversationData
内的对象?
例如"privateConversationData": "{\"nameForm\":{\"NAME\":\"foo\",\"ICCID\":\"12121212121212121212\"}}",
引用一个名为nameForm的对话框,如何编写查询以显示nameForm的使用次数?或者包含其他类型对话框的查询(例如,不仅仅是nameForm,还有fooForm,barForm)以及它们被使用的次数?
非常感谢您的帮助!
答案 0 :(得分:1)
' customDimensions' property是动态类型,因此可以视为JSON文档。
例如 - 获取最后一天使用nameForm的次数:
customEvents
| extend conversationData = customDimensions["privateConversationData"]
| where timestamp > ago(1d) and isnotempty(conversationData) and conversationData contains "{\\\"nameForm\\\""
| count
获取不同的对话框计数会更棘手,但可以通过使用parse operator解析customDimensions JSON文档来实现:
customEvents
| where timestamp > ago(1d)
| parse customDimensions with * "privateConversationData\": \"{\\\"" dialogKind "\\\":{\\\"NAME\\\"" *
| where isnotempty(dialogKind) and isnotnull(dialogKind)
| summarize count() by dialogKind
您可以阅读Analytics Reference以了解有关该语言的更多信息。