如何为消费计划的Azure Function创建10分钟超时警报?原Failures信号已移除
为消费计划Azure Function创建10分钟超时警报的方案
前提确认
消费计划下Azure Function默认超时为5分钟,需先在host.json中把最大执行时间配置到10分钟:
{ "functionTimeout": "00:10:00" }
方案一:基于Application Insights日志查询创建警报
Function超时会生成特定异常日志,可通过日志查询精准筛选这类事件并创建警报:
- 进入对应Application Insights的日志页面,执行以下Kusto查询:
exceptions | where type in ("System.Threading.Tasks.TaskCanceledException", "Microsoft.Azure.WebJobs.Host.FunctionTimeoutException") | where timestamp > ago(5m) | summarize timeoutCount = count() by operation_Name
注:不同Runtime版本的超时异常类型可能略有差异,可根据实际日志调整type字段值。
- 点击查询结果上方的新建警报规则,按以下配置:
- 目标资源:选择当前Application Insights
- 信号逻辑:选择「自定义日志搜索」,复用上述查询语句
- 警报逻辑:设置阈值为
timeoutCount > 0,评估周期设为10分钟,频率设为5分钟(确保覆盖超时窗口) - 操作组:选择已有的邮件通知组,或新建包含目标收件人的操作组
- 警报详情:填写名称、描述等信息,完成创建
方案二:基于失败请求指标创建警报
若超时会被标记为失败请求,可直接使用内置指标快速配置:
- 进入Azure Function的警报页面,点击新建警报规则
- 目标资源:选择当前Function App
- 信号逻辑:选择「失败请求」指标,指标命名空间选「Function App」
- 警报逻辑:设置聚合类型为「计数」,阈值为
> 0,评估周期10分钟,频率5分钟 - 配置操作组(邮件通知)和警报详情,完成创建
补充说明
- 部分场景下超时不会直接触发默认失败请求指标,此时优先用日志查询方案,能更精准捕获超时异常
- 测试时可编写故意超时的Function(比如
Thread.Sleep(601000)),验证警报是否正常触发
内容的提问来源于stack exchange,提问作者ddx
相关产品推荐
相关产品推荐

