簡體   English   中英

如何使用 Azure Monitor 或 ADF 本身觸發 Azure 數據工廠 V2 中長時間運行的進程的警報通知?

[英]How to trigger an alert notification of a long-running process in Azure Data Factory V2 using either Azure Monitor or ADF itself?

我一直在嘗試尋找在 ADF 任務(即 CopyActivity 或存儲過程任務)運行超過 N 小時時觸發警報的最佳方法,我想使用 Azure Monitor,因為它是推薦的通知之一Azure 中的服務,但是我無法找到“正在運行”的標准,因此我不得不使用可用的標准(成功和失敗)並每 N 小時檢查一次,但這仍然不完美,因為我沒有知道流程何時開始,我們可能每天手動多次運行該流程,您有什么建議可以這樣做嗎? 就像一個基於事件的通知,它會監聽某個時間變量,一旦它大於閾值就會觸發電子郵件通知?

你有什么辦法推薦這樣做嗎? 就像一個基於事件的通知,它會監聽某個時間變量,一旦它大於閾值就會觸發電子郵件通知?

根據您的要求,我建議您使用Azure 數據工廠 SDK來監控您的管道和活動。

您可以創建一個時間觸發器 Azure 函數,它每 N 小時觸發一次。 在那個觸發函數中:

  1. 您可以列出數據工廠帳戶中的所有正在運行的活動

  2. 然后循環它們以監視ActivityRun 類中DurationInMs屬性,以檢查是否有任何活動已運行超過 N 小時並且它仍然處於 In-Progress 狀態

  3. 最后,發送電子郵件或終止活動或做任何您想做的事情。

我建議簡單的解決方案: Kusto 查詢列出狀態為“排隊”的所有管道運行,並將其與我們不感興趣的管道連接到 CorrelationId 上 - 通常是“成功”、“失敗”。 Join flavor leftanti通過“從左側返回所有右側沒有匹配項的記錄”完成這項工作。 (如 MS 文檔中所述)。 下一步是設置所需的超時值 - 在下面的示例代碼中為 30m。 最后,您可以根據此查詢配置警報規則並獲取電子郵件通知或您需要的任何內容。

AFPPipelineRun | 其中狀態 == “排隊” | 加入 kind=leftanti ( AFPPipelineRun | where Status in ("Failed", "Succeeded") ) on CorrelationId | 起點 < 前 (30m)

我只是簡單地測試了這個,也許缺少一些東西。 我有一個關於添加要從結果中刪除的其他狀態的想法 - 例如“已取消”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM