如何将自定义KQL查询的PipelineName纳入Azure Monitor警报通知?
问题描述
我正在使用基于自定义KQL查询的Azure Monitor警报规则,查询语句如下:
SynapseIntegrationPipelineRuns | where OperationName endswith "- succeeded" or OperationName endswith "- failed" | summarize TotalOperations = count(), NumFailed = countif(OperationName endswith "- failed") by PipelineName | project PipelineName, Failed = NumFailed | where Failed > 0 | order by Failed desc
该规则在Failed > 0时触发。当前收到的通知/邮件未包含具体失败信息,为让团队快速判断是否需检查自身负责的管道,我希望将查询结果中的PipelineName纳入通知。我注意到警报的「详细信息」中有添加自定义属性的选项,请问能否通过该选项实现目标?我未找到引用查询结果的相关文档。
解决方案
完全可以通过「详细信息」里的自定义属性实现这个需求,具体操作如下:
- 进入警报规则编辑页面,定位到「详细信息」区域的自定义属性配置模块
- 添加自定义属性时,使用
$QueryResult变量引用KQL查询的输出结果。比如要展示所有失败的管道名称,可按以下配置:- 属性名称:
FailedPipelines - 属性值:
$QueryResult.PipelineName
- 属性名称:
- 保存警报规则后,后续触发的通知(如邮件、Webhook)中就会包含该自定义属性,显示所有符合条件的PipelineName
额外说明:
- 若查询返回多条结果,
$QueryResult.PipelineName会以逗号分隔的形式列出所有管道名称 - 除了PipelineName,也可通过相同方式引用查询结果里的其他字段(例如
$QueryResult.Failed)
内容的提问来源于stack exchange,提问作者Krumelur
相关产品推荐
相关产品推荐

