如何通过Application Insights查询Azure平台(基础设施升级)事件发生时间?
用Application Insights查询Azure Web App基础设施升级事件的方法
绝对可以借助Application Insights(或是关联的Log Analytics工作区)来追踪这类「Platform (Infrastructure Upgrade)」事件的发生时间!我之前帮团队解决过类似的需求,下面是具体的实现步骤和查询语句:
核心查询语句(Kusto语言)
这类平台级别的基础设施升级事件,本质上会触发Web App的重启操作,相关记录会被Azure写入AzureActivity日志表中。你可以在Application Insights的「日志」查询界面(或是Log Analytics工作区)运行以下查询:
AzureActivity | where OperationNameValue == "Microsoft.Web/sites/restart/action" | where ActivityStatusValue == "Success" | where ResourceGroup == "<你的资源组名称>" | where Resource == "<你的Web App名称>" | where SubStatusValue contains "InfrastructureUpgrade" | project EventTimestamp, OperationName, Resource, SubStatusValue, ActivityLogId | sort by EventTimestamp desc
查询语句说明
AzureActivity:存储所有Azure资源平台操作事件的核心表,包含了重启、升级等各类系统操作记录OperationNameValue:筛选出Web App的重启操作,因为基础设施升级必然会触发Web App重启SubStatusValue:这个字段会明确标记出重启的原因,包含InfrastructureUpgrade的记录就是你要找的平台升级事件project:只保留你关心的关键字段,比如事件发生时间戳、操作名称、资源名等,最后按时间倒序排列,方便查看最新的事件
额外提示
如果你的Application Insights还没有关联到Log Analytics工作区,需要先完成关联操作,这样才能在Application Insights的查询界面中访问到AzureActivity表。关联完成后,上面的查询就能直接运行了。
另外,你还可以基于这个查询创建警报规则,这样每次发生基础设施升级事件时,就能自动收到通知,不用再手动去门户排查了。
内容的提问来源于stack exchange,提问作者Ian G




