整合 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 服務都會共用同一組可能的目的地。 每個診斷設定都可以定義一或多個目的地,但不能定義一個或多個特定類型的目的地。 它應該是記憶體帳戶、事件中樞命名空間或事件中樞。 |
請遵循下列步驟來設定診斷 設定:
開啟 Microsoft Azure Data Manager for Energy 的 [ 概觀 ] 頁面
從左側面板中選取 [診斷 設定
選取 [新增診斷設定]
選取 [記錄] 底下的 [數據流工作記錄 ]
選取 [封存至記憶體帳戶]
確認您要封存記錄的訂用帳戶和記憶體帳戶。
瀏覽記憶體帳戶以下載 Airflow 記錄
建立診斷設定以將 Airflow 工作記錄封存到記憶體帳戶之後,您可以瀏覽至記憶體帳戶 概觀 頁面。 然後,您可以使用左側面板中的 「儲存體 Browser」 來尋找您想要調查的右側 JSON 檔案。 當您從一年到一個月到一天時,流覽不同的目錄是直覺的。
啟用診斷設定以整合記錄與Log Analytics工作區
您可以使用 Microsoft Azure Data Manager for Energy 實例概觀頁面左面板中的診斷 設定,將 Airflow 記錄與 Log Analytics 工作區整合。
在 Log Analytics 工作區中使用整合式 Airflow 記錄
使用 Kusto 查詢語言 (KQL) 從 Log Analytics 工作區擷取所收集的數據流記錄所需的數據。 您可以將預先建置的範例查詢載入 Log Analytics 工作區,或建立您自己的查詢。
載入預先建置的查詢: 從資源的功能表中選取 [記錄]。 Log Analytics 隨即開啟,其中包含 資源類型的預先建置查詢的 [查詢 ] 視窗。 流覽可用的查詢。 識別要執行並選取 [執行] 的 。 查詢會新增至查詢視窗,並傳回結果。
在查詢編輯器中撰寫查詢:您可以在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記錄,對指令清單擷取程式進行疑難解答 。
下一步
既然您要收集資源記錄,請建立記錄查詢警示,以在記錄數據中識別有趣的數據時主動收到通知。