gpt4 book ai didi

logging - Azure Application Insights 查询自定义维度

转载 作者:行者123 更新时间:2023-12-05 05:02:38 25 4
gpt4 key购买 nike

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

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

在 App Insights 方面;该消息以 JSON 格式存储在 customDimensions 下,键为 Logger Message。

从这个存储的信息中,我想进行一个查询,以获取所有状态代码 > 200 和状态代码 < 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

最佳答案

从查询语言的角度来看,你做的是正确的(假设你真的想要 > 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

更新:

尝试使用 parse_json() 作为先前的“猜测”建议:

(另外,请参阅此处的注释部分:https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/parsejsonfunction)

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

关于logging - Azure Application Insights 查询自定义维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62075695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com