使用 Kusto 查询为 ADF v2 中的长 运行 管道设置警报

Setting up an alert for Long Running Pipelines in ADF v2 using Kusto Query

我在 ADF V2 中有一个管道,通常需要 3 个小时才能 运行 但有时需要超过 3 个小时。因此,如果管道 运行 使用 Azure 日志分析(Kusto 查询)超过 3 小时,我想设置一个警报,我已经编写了一个查询,但如果管道成功或失败,它会显示结果。如果管道耗时超过 3 小时并且正在进行中,我想要一个警报。

我的查询是

ADFPipelineRun
| where PipelineName == "XYZ"
| where (End - Start) > 3h
| project information = 'Expected Time : 3 Hours, Pipeline took more that 3 hours' ,PipelineName,(End - Start)

你能帮我解决这个问题吗?

提前致谢。 拉利特

已更新:

请像下面这样更改您的查询:

ADFPipelineRun 
| where PipelineName == "pipeline11"
| top 1 by TimeGenerated
| where Status in ("Queued","InProgress")
| where (now() - Start) > 3h //please change the time to 3h in your case
| project information = 'Expected Time : 3 Hours, Pipeline took more that 3 hours' ,PipelineName,(now() - Start)

解释:

管道有一些状态,例如:SucceededFailedQueuedInProgress。如果管道现在 运行 且未完成,则其状态必须是以下两者之一:QueuedInProgress.

所以我们只需要使用top 1 by TimeGenerated获取最新的一条记录,然后检查它的状态如果QueuedInProgress(在查询中,它是where Status in ("Queued","InProgress")) .

最后,我们只需要使用where (now() - Start) > 3h检查运行是否超过3小时。

我自己测试了一下,没问题。如果您还有其他问题,请告诉我。