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

如何基于Azure Function定时器触发器代码创建APIM API健康检查邮件警报

针对Azure Functions特定健康检查日志创建邮件警报的步骤

1. 确认日志已采集到Application Insights

消费型Azure Functions默认会关联Application Insights(创建函数时可指定),先确保你的函数输出的URL is not healthy. Status code: {statusCode}日志已被正确采集:

  • 进入对应的Application Insights资源,左侧菜单打开Logs,搜索包含该字符串的日志,确认能查询到结果。

2. 编写自定义Kusto查询

在Application Insights的Logs页面,编写筛选目标日志的查询语句(根据日志记录级别调整severityLevel:3=Error,2=Warning,1=Information):

traces
| where message contains "URL is not healthy. Status code:"
| where severityLevel == 3 // 对应你记录日志时用的级别,比如用LogError就是3
| project timestamp, message, cloud_RoleName

执行查询,确保能返回目标日志条目。

3. 创建基于日志的警报规则

  1. 在Application Insights资源左侧菜单选择Alerts → Create → Alert rule
  2. 配置信号逻辑:
    • 信号类型选择Custom log search
    • 粘贴上述Kusto查询
    • 设置警报逻辑:选择Number of results,条件设为Greater than 0;根据监控需求调整评估时间段(如5分钟)和频率(如5分钟)
  3. 配置动作组:
    • 若无现成动作组,点击Create action group
    • 填写动作组名称、资源组,添加Email/SMS/Push/Voice动作,输入收件邮箱后完成创建
    • 选择刚创建的动作组
  4. 设置警报细节:
    • 填写警报规则名称、描述,选择严重级别(如Critical)
    • 保存警报规则

4. 验证警报触发

手动让APIM API返回错误状态码,触发函数输出目标日志,等待警报规则的评估周期,确认收件邮箱收到通知邮件。

额外注意事项

  • 检查函数的host.json日志配置,确保目标日志级别被允许发送到Application Insights:
    {
      "logging": {
        "applicationInsights": {
          "samplingSettings": {
            "isEnabled": true,
            "excludedTypes": "Request"
          }
        },
        "logLevel": {
          "default": "Information",
          "Microsoft": "Warning"
        }
      }
    }
    
    若用_logger.LogError()记录目标日志,默认Error级别会被采集;若用其他级别,需对应调整logLevel或查询中的severityLevel。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 15:57:45