You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为执行update statistics的已完成Azure Runbook配置错误告警

捕获Runbook完成状态下的内部错误告警方案

针对你遇到的Runbook标记为completed但内部存在SQL异常的场景,可通过以下两种方案实现告警:

方案一:基于日志查询创建新告警规则(保留Runbook完成状态)

1. 改造Runbook,确保错误日志被采集

在你的PowerShell Runbook中添加异常捕获逻辑,将内部错误输出到Azure Monitor日志:

try {
    # 原有的update statistics执行代码示例
    $adapter.Fill($dataset)
}
catch {
    # 捕获异常并写入错误日志
    Write-Error "Update Statistics执行异常: $_"
    # 若需保持Runbook为completed状态,请勿添加终止命令
}

修改后,异常信息会被同步到关联的Log Analytics工作区中。

2. 创建日志告警规则

  • 进入Azure Monitor → 告警 → 创建 → 告警规则
  • 信号源选择「日志查询」,关联你的Log Analytics工作区
  • 编写Kusto查询语句,筛选目标Runbook的错误日志:
    AutomationJobLogs
    | where JobName == "update-statistics-selected-maadf01-tables"
    | where ResultType == "Error"
    | where TimeGenerated > ago(1h) # 根据需求调整时间范围
    
    或精准匹配异常关键词:
    AutomationJobLogs
    | where JobName == "update-statistics-selected-maadf01-tables"
    | where Message has "SqlException" or Message has "Exception calling \"Fill\""
    
  • 告警逻辑设置为「当查询结果行数大于0时触发」
  • 关联你已有的动作组,完成告警规则创建

方案二:修改Runbook,强制错误时标记为Failed(复用现有告警)

如果业务允许Runbook在出现此类错误时标记为failed,可在异常捕获块中抛出异常:

try {
    $adapter.Fill($dataset)
}
catch {
    Write-Error "Update Statistics执行异常: $_"
    throw $_ # 抛出异常,让Runbook标记为Failed
}

这样Runbook出现错误时会直接变为failed状态,你现有的告警规则会自动触发邮件通知,无需新建规则。

验证步骤

  1. 手动触发Runbook模拟错误场景
  2. 检查Log Analytics工作区中是否生成对应的错误日志
  3. 确认告警是否触发,邮件是否正常接收

内容的提问来源于stack exchange,提问作者mark steben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 16:27:34