我可以在应用程序洞察中编写一个查询,以标量形式给出百分比。如果该百分比 > 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,我不确定这是否可能/该查询将如何。
答案 0 :(得分:0)
抱歉回复晚了。我在我身边测试过,确实遇到了很多问题。
我发现alert rule不支持监控结果的百分比,它只支持查询结果的数量和LOGGING_FROM_AZURE_APIM2
。所以我认为你可以放弃百分比并使用Metric measurement
,如下面的截图
请注意,您不能在查询末尾附加“;”,否则会出现类似 num_err_machine