应用洞察:您能否将两个属性连接在一起?

App insights: Can you concatenate two properties together?

我有一个名为 EventInfo 的带有 json(字符串)属性 的自定义事件。有时这个 属性 会大于事件属性上设置的 150 个字符限制,所以我必须将它拆分为多个属性,即 EventInfo0、EventInfo1 等。

例如(为简单起见缩短) EventInfo0: [{ "label" : "likeButton", "stat], EventInfo1: [us" : "success" }]

我发现如何在应用洞察中将 EventInfo 视为 json,例如:

customEvents
 | where name == "people"
 | extend Properties = todynamic(tostring(customDimensions.Properties))
 | extend type=parsejson(Properties.['EventInfo'])
 | mvexpand type
| project type, type.label, type.status]

有没有办法连接 EventInfo0 和 EventInfo1 以创建完整的 json 字符串,并像上面那样查询?

根据文档,150 个字符的限制是针对 密钥,而不是针对整个负载。因此,实际上可能不需要拆分。

https://docs.microsoft.com/en-us/azure/azure-monitor/app/data-model-event-telemetry#custom-properties

就是说,回答您的问题 - 虽然在查询时效率不高,但以下方法可行:

datatable(ei0:string, ei1:string)
[
    '[{ "label" : "likeButton", "stat]', '[us" : "success" }]',
    '[{ "lab]', '[el" : "bar", "hello": "world" }]'
]
| project properties = parse_json(strcat(substring(ei0, 1, strlen(ei0) - 2), substring(ei1, 1, strlen(ei1) - 2)))
| project properties.label
properties_label
----------------
likeButton
bar