Application Insights对每个请求的指标发出警报

时间:2019-12-10 08:27:46

标签: azure azure-application-insights

我想要一个警报,通知N + 1个问题。 例如。如果请求具有多个X SQL依赖项,请发送电子邮件。 但是“依赖关系调用”警报似乎是针对整个应用程序,而不是针对每个请求。

有没有办法实现每个请求的行为?

1 个答案:

答案 0 :(得分:1)

默认情况下,Application Insights会记录对服务器的每个请求,并记录每个依赖项调用,例如您所做的数据库和微服务调用。它通过给予依赖项调用operation_ParentId来将两者连接在一起,该ID与请求的ID相同。简而言之,您可以加入请求和依赖项以列出每个web / api请求,并显示它生成了多少个SQL调用,以及它们花费了多长时间运行,如下所示:

requests 
| project name, id, duration
| join kind = leftouter (
   dependencies 
   | where type  == 'SQL'
   | project sqlid = id, operation_ParentId , sqlduration = duration 
) on $left.id == $right.operation_ParentId 
| summarize sqlopscount = countif(isnotempty(sqlid)), sqlopsduration = sum(sqlduration) by name, id, duration
| order by sqlopscount  desc 

Azure Web Apps上的ASP.Net(核心或其他),您的SQL调用会自动记录为依赖项。

选中此link以获得详细说明。

其他参考:

Application Insights not tracking sql queries

希望有帮助。