根据百分比从 Application Insights 日志中提高警报?

时间:2021-04-13 19:51:51

标签: azure-application-insights

我可以在应用程序洞察中编写一个查询,以标量形式给出百分比。如果该百分比 > X ,我想创建警报。如何使用基于日志的警报来做到这一点?

基本上,我有很多机器可以将遥测数据发送到应用程序洞察中。有时他们会记录一些异常。我在 customDimensions 中为所有日志发送 MachineName。所以我可以得到过去 24 小时内发送日志的所有机器的名称。异常也随 customDimensions 中的 MachineName 一起发送。当过去 24 小时内超过 X% 的机器引发特定错误时,我想发出警报。

编写警报逻辑的方法是使用“结果数”,它不能用于此,因为它会自动将“|计数”添加到查询中。另一种方法是使用“公制测量”,我猜它应该可以帮助我发出这样的警报,但我无法弄清楚如何。

我可以通过这个查询得到机器总数:

let num_machines = traces
| summarize by tostring(customDimensions["MachineName"])
| count;

我可以获得报告异常的机器数量,如下所示:

let num_error_machines = exceptions
| where customDimensions["Message"] contains "ExceptionXRaised"
| summarize by tostring(customDimensions["MachineName"])
| count;

最后,我可以得到像这样提出问题的机器的百分比:

print toscalar(num_error_machines)*100/toscalar(num_machines)

我不确定如何使用此结果来使用 MetricMeasurement 发出警报。这需要以某种方式进行修改以获取 AggregatedValue 并使用 bin,我不确定这是否可能/该查询将如何。

1 个答案:

答案 0 :(得分:0)

抱歉回复晚了。我在我身边测试过,确实遇到了很多问题。

我发现alert rule不支持监控结果的百分比,它只支持查询结果的数量和LOGGING_FROM_AZURE_APIM2。所以我认为你可以放弃百分比并使用Metric measurement,如下面的截图

enter image description here

请注意,您不能在查询末尾附加“;”,否则会出现类似 num_err_machine