Azure Functions“失败”指标的 Azure 警报正在触发,没有明显的故障

Posted

技术标签:

【中文标题】Azure Functions“失败”指标的 Azure 警报正在触发,没有明显的故障【英文标题】:Azure alert on Azure Functions "Failed" metric is triggering with no apparent failures 【发布时间】:2021-01-01 11:42:12 【问题描述】:

我希望在某个函数应用失败时触发 Azure 警报。我将其设置为 [function name] Failed metric thinking 的 GTE 1 阈值,这将产生预期的结果。但是,当它每天运行时,我会收到警报触发的通知,但我在 Application Insights 中找不到任何指示失败的信息,并且它似乎正在成功运行并完成。

这是触发的警报摘要:

这是来自门户的调用监控,显示过去几天相同的功能没有失败:

这是该时间段内的应用洞察搜索,显示没有异常和所有成功的依赖操作:

问题是 - 什么可能导致 Azure Function Failed 指标在 Application Insights 中注册非零值而没有任何遥测?

更新 - 这是警报配置

以及具体的条件设置-

故障刀片适用于更广泛的时间范围:

blob 404 上存在一些依赖关系失败,但我认为这是来自不同的函数,该函数显式检查路径中是否存在 blob,以了解要从外部源下载哪些文件。时间戳也不属于采样周期。

没有例外:

【问题讨论】:

您能否分享您的警报配置详细信息/屏幕截图。 @KrishnenduGhosh-MSFT 当然可以!我已经用警报配置的屏幕截图更新了描述。谢谢 谢谢。如果您单击该条件并共享屏幕截图,那就太好了。 谢谢。我正在检查。 @GavinH,不确定你那边发生了什么,因为我这边没问题。但作为一种解决方法,您可以使用custom log search 来定义更可信的警报。 【参考方案1】:

根据@ivan-yang 对问题的评论,我已将警报切换为使用自定义日志搜索,而不是内置的 Azure 函数指标。在这一点上,该指标似乎对于触发它的原因非常不透明,并且当我运行 Azure 函数时它每天都在触发,没有明显的潜在故障。我现在打算避免使用这个指标。

我的基于日志的警报现在正在使用以下查询来获取我正在寻找的内容(发生异常或函数失败):

requests
| where success == false
| union (exceptions)
| order by timestamp desc

感谢 @ivan-yang 和 @krishnendughosh-msft 的帮助

【讨论】:

如何将此查询变成警报规则?我正在尝试将它用于我的 Azure 函数,但“选择信号”下没有可用的自定义选项。 custom log search 在信号列表中不可用。 我明白了,我必须使用 Application Insights 作为目标资源而不是函数应用才能访问custom log search

以上是关于Azure Functions“失败”指标的 Azure 警报正在触发,没有明显的故障的主要内容,如果未能解决你的问题,请参考以下文章

az login 从 github 操作任务失败

用于配置 Azure Function App TLS/SSL“仅 HTTPS”设置的 Az CLI

具有 dotnet 隔离的 Az 功能的提琴手 - 启动 gRPC 调用时出错

将更改部署到 azure 时,sqitch deploy 命令失败

Azure Functions 运行时 2 - 使用 SqlClient 的 SQL 连接

如何更新所有 Azure Powershell Az 模块?