2

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

这是触发的警报摘要:

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

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

更新 - 这是警报配置

在此处输入图像描述

而具体的条件设置——

在此处输入图像描述

更宽时间范围的故障刀片:

在此处输入图像描述

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

在此处输入图像描述

没有例外:

在此处输入图像描述

4

1 回答 1

4

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

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

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

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

于 2020-09-16T17:18:02.227 回答