应用程序见解-查询集合

时间:2018-11-16 10:08:57

标签: azure-application-insights

我正在使用Serilog将数据跟踪到Application Insights。

在自定义属性中,serilog将一系列故障记录为自定义数据,如下所示...

faults.Count 2
faults.0 "SomeFault" 
faults.1 "AnotherFault"

如何使用Application Insights Analytics查询语言查询这些属性?

我想报告任何包含"AnotherFault"的响应,但不知道索引。

1 个答案:

答案 0 :(得分:1)

可以很简单:

search in (CustomEvents) "AnotherFault"

或者,您可以将搜索限制为仅自定义维度:

CustomEvents
| where timestamp > ago(24h)
| where tostring(customDimensions) contains "AnotherFault"

由于字符串包含比较,两者都会对大型数据集产生性能影响,因此了解索引或名称或属性肯定会有所帮助。

另一种方法是执行| mvexpand并将每个自定义维度展开到其自己的行中:

CustomEvents
| where timstamp > ago(24h)
| project customDimensions, usefulField1, usefulField2,....
| mvexpand bagexpansion=array customDimensions
| where customDimensions[1] == "AnotherFault"

通过将其转换为数组,您可以通过泛型[1]访问自定义维度的值,而不必知道其名称,因此可以与“ AnotherFault”进行完整比较,而无需使用“ faults。#”语法。诀窍是在进行mvexpand减少内存乘法之前,先减少想要查看的字段数量。