本文介绍了应用程序洞察提取嵌套的CustomDimensions的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在Application Insights Analytics中有一些数据,其中有一个动态对象作为自定义维度的属性。例如:
| timestamp | name | customDimensions | etc |
|-------------------------|---------|----------------------------------|-----|
| 2017-09-11T19:56:20.000 | Spinner | { | ... |
MyCustomDimension: "hi"
Properties:
context: "ABC"
userMessage: "Some other"
}
这有意义吗?因此是CustomDimensions中的键/值对。
我正在尝试使context
属性在结果中成为适当的列。因此预期为:
| timestamp | name | customDimensions | context| etc |
|-------------------------|---------|----------------------------------|--------|-----|
| 2017-09-11T19:56:20.000 | Spinner | { | ABC | ...
MyCustomDimension: "hi"
Properties:
context: "ABC"
userMessage: "Some other"
}
我试过了:
customEvents | where name == "Spinner" | extend Context = customDimensions.Properties["context"]
和这个:
customEvents | where name == "Spinner" | extend Context = customDimensions.Properties.context
但两种方法似乎都不管用。它们在末尾给了我一个名为"Context"的列,但该列是空的--没有值。
有什么想法吗?
编辑:
添加图片以澄清数据格式:
推荐答案
编辑为工作答案:
customEvents
| where name == "Spinner"
| extend Properties = todynamic(tostring(customDimensions.Properties))
| extend Context = Properties.context
此处需要额外的tostring
和todynamic
才能获得您所期望的(以及我所期望的!)
给我的解释:
因此,基本上在默认情况下,它不会尝试解析动态/json块中的字符串,因为它们不想花费大量时间,可能会无限地尝试将嵌套内容转换为json,但失败了。
我仍然认为内部不应该需要额外的tostring
,因为todynamic
应该已经有效地允许字符串和动态输入,所以我正在检查拥有查询内容的团队是否可以更好地完成这一步。
这篇关于应用程序洞察提取嵌套的CustomDimensions的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!