首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >日志分析警报规则

日志分析警报规则
EN

Stack Overflow用户
提问于 2021-03-22 17:28:54
回答 1查看 1.1K关注 0票数 0

我有一个带有诊断设置的DataFactory,激活并将日志发送到。

我希望创建一个警报,如果事件触发器在上午9点后没有运行,则只触发一次

我想有这样的疑问:

代码语言:javascript
复制
let StartTime =startofday(now());
let EndTime =now();
let CheckHour = 9;
ADFTriggerRun
| where ResourceId contains toupper("DataFactory_Name")
| where TriggerName == "Trigger_Name"
| where TimeGenerated > StartTime and TimeGenerated < EndTime
| extend Hour = datetime_part("hour", TimeGenerated)
| where Hour < CheckHour

但是,如果将下列设置设置为警报,则会发现一些问题:

  • 小于0的结果数
  • 周期= 30分钟
  • 频率= 30分钟

(如果触发器正确运行)警报将在上午9点前发射18次。

(如果触发器没有运行)警报将在一天内触发48次。

有什么疑问来避免这种情况吗?如果有条件的话?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-23 09:24:51

没有这样的解决办法直接解决这个问题。

我建议您可以设置两个警报:

警报1:如果触发器没有一整天运行,将发送警报。您可以在问题中使用您的查询,只需设置Period = 1440 minutesFrequency = 1440 minutesNumber of results less than 0。然后,它只会发送一个警报电子邮件,如果触发器没有运行。

警报2:通过添加iff()函数使用下面的查询

代码语言:javascript
复制
let StartTime =startofday(now());
let EndTime =now();
let CheckHour = 9;
ADFTriggerRun
| where ResourceId contains toupper("DataFactory_Name")
| where TriggerName == "trigger1"
| where TimeGenerated > StartTime and TimeGenerated < EndTime
| extend Hour = datetime_part("hour", TimeGenerated)
| extend isFailed = iff(Hour < CheckHour, "Success","Failed")
| where isFailed == "Failed"

然后设置Period = 30 minutesFrequency = 30 minutesNumber of results Equal to 1。通过使用此查询/设置,如果触发器在上午9点后运行(例如,触发器在上午10:07运行,警报在10:20 at /10:50 at扫描,只有在这2次时,它才会发送警报;如果触发器在上午9点之前运行,则不会发送警报)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66750981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档