我正在使用Serilog将数据跟踪到Application Insights。
在自定义属性中,serilog将一系列故障记录为自定义数据,如下所示...
faults.Count 2
faults.0 "SomeFault"
faults.1 "AnotherFault"
如何使用Application Insights Analytics查询语言查询这些属性?
我想报告任何包含"AnotherFault"
的响应,但不知道索引。
答案 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
减少内存乘法之前,先减少想要查看的字段数量。