Azure Application Insights查询customDimensions

问题描述 投票:0回答:1

我有一个Java应用程序,它将log4j2日志发送到App Insights。当记录异常时,我基本上以字符串格式传递JSON,并且类似这样的异常

JSONObject json=new JSONObject();
json.put(...)
....
log.error(json.toString(), exception)

在App Insights端;消息以JSON格式存储在customDimensions下,且记录器消息的键为JSON。

从此存储的信息中,我要进行查询,以获取statusCode> 200和statusCode <300的所有异常消息。我尝试了几次查询,但无法提取这些特定的异常消息。

我尝试的查询之一是

exceptions 
| limit 50 
| where toint(customDimensions["Logger Message"].statusCode) > 200 
  and toint(customDimensions["Logger Message"].statusCode) < 300

任何帮助将不胜感激

更新:我正在运行查询

exceptions
| limit 50 
| project s1 = customDimensions["Logger Message"]
| extend  s2 = s1.statusCode
| extend  s3 = toint(s2)
| extend  s4 = s3 >= 200 and s3 < 300

enter image description here

logging azure-application-insights kusto
1个回答
0
投票

从查询语言的角度来看,您做的是正确的(假设您实际需要> 200而不是>= 200,这样示例中的查询实际上将返回您粘贴了快照的记录)] >

print customDimensions = dynamic({
    "Logger Message":{
        "message":"Test 1 and Test 2",
        "statusCode": 200
    }
})
| project toint(customDimensions['Logger Message'].statusCode)

这将返回单个表,单行,单列以及值200

很难完全理解基于快照的情况下实际数据的外观-您可以尝试逐步调试(下面的s1,...,s4)并查看其“中断”的位置。

  • (只是一个猜测,您可能需要在字符串有效负载上调用parse_json(),以便实际上可以访问其中的动态属性。
exceptions
| limit 50 
| project s1 = customDimensions["Logger Message"]
| extend  s2 = s1.statusCode
| extend  s3 = toint(s2)
| extend  s4 = s3 > 200 and s3 < 300
© www.soinside.com 2019 - 2024. All rights reserved.