Azure Application Insights - 如何根据指标之间的比较创建警报?

Azure Application Insights - How to create an alert based on comparison between metrics?

我正在尝试根据几个长期 运行 计算指标之间的比较来创建警报。

根据批次竞争(长度不同),我发出 2 个自定义指标:DocsParsedTotalDocsParsedSuccessful(两个值都是整数).

我可以通过以下查询查看这些指标:

customMetrics 
| where timestamp >= ago(60m) 
| where name == "DocsParsedTotal" or name == "DocsParsedSuccessful"

是否可以选择使用 sum(DocsParsedSuccessful) / sum(DocsParsedTotal) 扩展指标并基于它创建警报?

我也可以为比率(每批次)发出一个指标,但由于我的批次的长度 avg() 不同,所以它不会很精确。

如果你能在 Application Insights -> logs 中附上查询结果的屏幕截图,根据你 post 中的代码,那就更好了,就像我回答的第 1 步中的屏幕截图。

这里是一个例子,你可以照着做,但是数据源可能和你的不一样。

1.The 我测试的数据源:

2.Then 您可以使用下面的查询:

customMetrics 
| where timestamp >= ago(1d) 
| where name == "DocsParsedTotal" or name == "DocsParsedSuccessful"
| summarize a2=sumif(value,name=="DocsParsedTotal"),a1=sumif(value,name == "DocsParsedSuccessful")
| extend s1 = iff(a1/a2>2,"alert","not alert")
| where s1 =="alert"

查询备注:

对于这行代码 extend s1 = iff(a1/a2>2,"alert","not alert"),如果 a1/a2>2(您可以根据需要将其设置为任何值而不是 2)是 true,则使用 where s1 =="alert",应该总是返回 1 个结果。否则,返回 0 个结果。

3.Next,点击"New alert rule":

4.Then在"Create rule"页面,请按照下面截图中的步骤操作:

如果您还有其他问题,请告诉我。