我想要一个警报,通知N + 1个问题。 例如。如果请求具有多个X SQL依赖项,请发送电子邮件。 但是“依赖关系调用”警报似乎是针对整个应用程序,而不是针对每个请求。
有没有办法实现每个请求的行为?
答案 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
希望有帮助。