Share via


整合 Airflow 記錄與 Azure 監視器

在本文中,您將瞭解如何開始將 Microsoft Azure Data Manager for Energy 實例的 Airflow 記錄收集至 Azure 監視器。 這項整合功能可協助您偵錯 Airflow DAG(導向無循環圖表)執行失敗。

必要條件

  • 現有的 Log Analytics工作區。 此工作區將用來使用 Log Analytics 工作區中的 Kusto 查詢語言 (KQL) 查詢編輯器來查詢 Airflow 記錄。 實用的資源:在 Azure 入口網站 中建立記錄分析工作區。

  • 現有的 記憶體帳戶:將用來儲存 Airflow 記錄的 JSON 傾印。 儲存體帳戶不一定與 Log Analytics 工作區位於相同的訂用帳戶中。

啟用診斷設定以收集記憶體帳戶中的記錄

每個適用於能源的 Azure Data Manager 實例都會內建 Azure Data Factory 工作流程協調流程管理員(由 Apache Airflow 提供)實例。 我們會收集 Airflow 記錄,以便進行內部疑難解答和偵錯。 Airflow 記錄可以透過下列方式與 Azure 監視器整合:

  • 儲存體帳戶
  • Log Analytics 工作區

若要透過上述兩個選項中的任何一個存取記錄,您需要建立診斷設定。 每個診斷設定都有三個基本部分:

部分 描述
Name 這是診斷記錄的名稱。 確定已為每個記錄檔設定唯一的名稱。
類別 要傳送至每個目的地的記錄類別。 每個 Azure 服務會有不同的類別集合。 流覽: 支援的資源記錄類別
目的地 傳送記錄的一或多個目的地。 所有 Azure 服務都會共用同一組可能的目的地。 每個診斷設定都可以定義一或多個目的地,但不能定義一個或多個特定類型的目的地。 它應該是記憶體帳戶、事件中樞命名空間或事件中樞。

請遵循下列步驟來設定診斷 設定:

  1. 開啟 Microsoft Azure Data Manager for Energy 的 [ 概觀 ] 頁面

  2. 從左側面板中選取 [診斷 設定

    Azure 監視器診斷設定概觀頁面的螢幕快照。這個頁面會顯示現有診斷設定的清單,以及新增診斷設定的選項。

  3. 選取 [新增診斷設定]

  4. 選取 [記錄] 底下的 [數據流工作記錄 ]

  5. 選取 [封存至記憶體帳戶]

    建立診斷設定以將記錄封存至記憶體帳戶的螢幕快照。此影像顯示針對診斷設定選擇的訂用帳戶和記憶體帳戶。

  6. 確認您要封存記錄的訂用帳戶和記憶體帳戶。

建立診斷設定以將 Airflow 工作記錄封存到記憶體帳戶之後,您可以瀏覽至記憶體帳戶 概觀 頁面。 然後,您可以使用左側面板中的 「儲存體 Browser」 來尋找您想要調查的右側 JSON 檔案。 當您從一年到一個月到一天時,流覽不同的目錄是直覺的。

  1. 瀏覽左側面板上可用的容器

    在 儲存體 帳戶的容器中探索封存記錄的螢幕快照。容器會顯示所有已設定來源的記錄。

  2. 開啟右側的資訊窗格。 其中包含 [下載] 按鈕,以在本機儲存記錄檔。

  3. 您可以在任何編輯器中分析下載的記錄。

啟用診斷設定以整合記錄與Log Analytics工作區

您可以使用 Microsoft Azure Data Manager for Energy 實例概觀頁面左面板中的診斷 設定,將 Airflow 記錄與 Log Analytics 工作區整合。

建立診斷設定的螢幕快照。它會顯示要與其整合之訂用帳戶和 Log Analytics 工作區的選項。

在 Log Analytics 工作區中使用整合式 Airflow 記錄

使用 Kusto 查詢語言 (KQL) 從 Log Analytics 工作區擷取所收集的數據流記錄所需的數據。 您可以將預先建置的範例查詢載入 Log Analytics 工作區,或建立您自己的查詢。

Azure 監視器 Log Analytics 頁面的螢幕快照,用於檢視收集的記錄。在記錄管理下,會顯示來自所有來源的數據表。

  1. 載入預先建置的查詢: 從資源的功能表中選取 [記錄]。 Log Analytics 隨即開啟,其中包含 資源類型的預先建置查詢的 [查詢 ] 視窗。 流覽可用的查詢。 識別要執行並選取 [執行] 的 。 查詢會新增至查詢視窗,並傳回結果。

  2. 在查詢編輯器中撰寫查詢:您可以在Log Analytics工作區的 查詢編輯器 上複製、貼上和編輯下列查詢,或在 KQL 中撰寫您自己的查詢。

範例查詢

此查詢會傳回屬於層級 ERROR 的所有 Airflow 記錄。 您可以新增 [取消批注] 來篩選結果,其中子句適用於能源的 Azure Data Manager 實例名稱和 DAG 執行的相互關聯標識碼。


OEPAirFlowTask
| extend ResourceName = tostring(split(_ResourceId , '/')[-1])
// | where ResourceName == "<the name of ADME instance>"        // to filter on resourceName replace <...> and uncomment line
// | where CorrelationId == "<DAG run's runId>"                 // to filter on correlationID replace <...> with correlationId (same as runId) - we have created a duplicate for to maintain consistency of column name across all services 
| where LogLevel  == "ERROR"
| project TimeGenerated, DagName, LogLevel, DagTaskName, CodePath, Content

此查詢會列出所有 DAG 執行,以及上述 Azure Data Manager for Energy 資源中對應的相互關聯標識碼。


OEPAirFlowTask
| extend ResourceName = tostring(split(_ResourceId , '/')[-1])
// | where ResourceName == "<the name of ADME instance>"        // to filter on resourceName replace <...> and uncomment line
| distinct DagName, CorrelationId                               // correlationId is same as runId - we have created a duplicate for consistency in search across logs of all services 
| sort by DagName asc

我們已新增文件,協助您 使用Log Analytics工作區中收集的Airflow記錄,對指令清單擷取程式進行疑難解答

下一步

既然您要收集資源記錄,請建立記錄查詢警示,以在記錄數據中識別有趣的數據時主動收到通知。