0

我有一个名为 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 字符串,并像上面那样查询?

4

1 回答 1

0

根据文档,150 个字符的限制是在key上,而不是在整个有效负载上。因此,实际上可能不需要拆分。

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
于 2020-10-30T18:51:05.410 回答