gpt4 book ai didi

azure - 如果 Azure 函数计时器触发器未在特定日期和时间触发,则发出警报

转载 作者:行者123 更新时间:2023-12-02 22:57:58 24 4
gpt4 key购买 nike

我有一个 azure timmertrigger 函数,该函数在每月 26 日的 12:05 运行以运行批处理作业。如果在此时间和日期未触发定时器触发,我想设置警报。该函数是通过 cron 表达式触发的,并且按预期触发,如果没有触发,我们必须手动去检查它是否是从日志触发的。

我的第一个猜测是根据请求编写自定义日志警报

请求|其中 cloud_RoleName 包含 FUNCTION_APP_NAME_HERE

但我不确定是否可以扫描给定时间和日期的日志。我们已经配置了一旦触发 timmertrigger 后批处理作业出现错误时发出的警报。

欢迎任何建议。

最佳答案

一种解决方案是编写一个查询,显示给定时间范围内的所有请求,并在出现 0 个结果时创建警报。然后您就知道触发器尚未(按时)触发。

有一个问题:在特定时间范围之外,结果数也将为 0,因此我们将使用一个技巧

像这样的事情就可以了:

let inTimeFrame = iif(
datetime_part("day", now()) == 26 and datetime_part("hour", now()) between (12 .. 13),
0,
1);
let resultCount = toscalar(requests
| where cloud_RoleName contains FUNCTION_APP_NAME_HERE
| where datetime_part("day", timestamp) == 26
| where datetime_part("hour", timestamp) between (12 .. 13)
| summarize count());
print inTimeFrame + resultCount

首先,我们创建一个值为 0 或 1 的变量。当它在每月 26 日 12:00-13:00 的时间范围内时,该变量将为 0。否则其值为 1。

然后,我们计算该时间范围内的结果数量。最后我们将结果数添加到变量的值中。

  • 如果在规定时间内没有结果,则最终结果将为 0 + 0 = 0
  • 当时间范围内有结果时,最终结果将为 0 + 1 = 1
  • 如果超出时间范围没有结果,则最终结果将为 1 + 0 = 1。

现在您需要做的就是创建一个警报,该警报将在自定义搜索的值为 0 时触发:

enter image description here

请注意,据我所知,计时器触发器不会导致请求被记录到 App Insights,因此您可能想要使用不同的表进行查询,但希望您能明白这一点。

另外,请注意当前查询使用 UTC 时间。

关于azure - 如果 Azure 函数计时器触发器未在特定日期和时间触发,则发出警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71510304/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com