如果X%的请求失败,Azure Web App服务将触发警报

如果X%的请求失败,Azure Web App服务将触发警报,azure,azure-application-insights,azure-web-app-service,Azure,Azure Application Insights,Azure Web App Service,我一直在尝试设置Azure中托管的.NET核心应用程序服务的警报,以便在过去24小时内如果X%的请求失败时触发事件。我还尝试使用以下指标从服务的AppInsights资源设置警报:异常率、服务器异常或请求失败 但是,它们都不能捕获%(故障率),它们都使用计数作为度量 有人知道这方面的解决方法吗 请尝试基于查询的警报: 1.转到application insights analytics,在查询编辑器中输入以下脚本: exceptions | where timestamp >ago(24h

我一直在尝试设置Azure中托管的.NET核心应用程序服务的警报,以便在过去24小时内如果X%的请求失败时触发事件。我还尝试使用以下指标从服务的AppInsights资源设置警报:异常率、服务器异常或请求失败

但是,它们都不能捕获
%(故障率)
,它们都使用
计数作为度量


有人知道这方面的解决方法吗

请尝试基于查询的警报:

1.转到application insights analytics,在查询编辑器中输入以下脚本:

exceptions
| where timestamp >ago(24h)
| summarize exceptionsCount = sum(itemCount) | extend t = ""| join
(requests 
| where timestamp >ago(24h)
| summarize requestsCount = sum(itemCount) | extend t = "") on t
| project isFail = 1.0 * exceptionsCount / requestsCount > 0.5 // if fail rate is greater than 50%, fail
| project rr = iff(isFail, "Fail", "Pass")
| where rr == "Fail"
2.然后点击右上角的“新建预警规则”:

3.在创建规则页面中,设置如下:


我一直在寻找一种避免使用应用程序内置洞察功能编写查询的方法,但最后我还提出了一种类似于您的解决方案,即使用请求:

requests
| summarize count()
| extend a = "a"
| join
(
    requests
    | summarize count() by resultCode
    | extend a = "a"
)
on a
| extend percentage = (todouble(count_1)*100/todouble(count_))
| where resultCode == 200
| where percentage < 90 //percentage of success is less than 90% 
| project percentage_of_failures = round(100- percentage,2), total_successful_req = count_, total_failing_req = count_ - count_1 , total_req = count_1
请求
|汇总计数()
|扩展a=“a”
|加入
(
请求
|按resultCode汇总计数()
|扩展a=“a”
)
在
|扩展百分比=(todouble(count_1)*100/todouble(count_))
|其中resultCode==200
|当百分比<90//成功百分比小于90%
|项目失败的百分比=四舍五入(100%2),成功的项目总数=计数,失败的项目总数=计数-计数1,成功的项目总数=计数1