View a markdown version of this page

在 Amazon MWAA 上監控儀表板和警示 - Amazon Managed Workflows for Apache Airflow

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 Amazon MWAA 上監控儀表板和警示

Amazon Managed Workflows for Apache Airflow 環境的環境詳細資訊頁面包含內建 CloudWatch 指標儀表板和環境警示表。您可以使用這些功能,直接在 Amazon MWAA 主控台中監控環境的運作狀態,無需任何額外設定。

Apache Airflow 公開多個程序的指標,包括 DAG 程序數量、DAG 包大小、目前正在執行的任務、任務失敗和成功。當您建立環境時,Apache Airflow 會自動將 Amazon MWAA 環境的指標傳送至 CloudWatch。除了內建儀表板之外,您還可以在 Amazon CloudWatch 中建置自訂儀表板,並為特定指標新增警示。當警示在儀表板上時,它會在進入 ALARM 狀態時變成紅色。這可讓您更輕鬆地主動監控 Amazon MWAA 環境的運作狀態。

檢視指標儀表板

環境詳細資訊頁面包含內建的 CloudWatch 指標儀表板,顯示在主控台的 CloudWatch 指標下。此內嵌 CloudWatch 儀表板會顯示您環境的圖表,無需任何額外設定。

Amazon MWAA 環境詳細資訊頁面上的 CloudWatch 指標窗格,顯示警示建議切換、指標區段篩選條件,以及容器群組中的範例圖表。

若要在 CloudWatch 主控台中開啟整組指標,請選擇在 CloudWatch 中檢視全部

儀表板會顯示來自下列兩個 CloudWatch 命名空間的指標:

  • AmazonMWAA – Apache Airflow 指標。

  • AWS/MWAA – 容器、佇列和資料庫指標。

您可以使用下列控制項來變更儀表板顯示的內容:

  • 開啟警示建議切換以僅顯示建議的指標。當您開啟此切換時,每個圖表都會繪製其警示閾值做為註釋。如果指標高於 ,則註釋會讀取警示;如果指標低於 ,則註釋會讀取警示,具體取決於指標。

  • 使用指標區段篩選條件,僅顯示特定群組中的圖表。可用的群組包括容器資料庫和佇列排程器DAG 處理任務觸發器

注意

如果您設定環境,使用指標允許清單或封鎖清單選項來篩選其發佈的 Apache Airflow 指標,某些圖表可能沒有資料。

注意

若要檢視指標儀表板,您的 IAM 身分必須具有讀取 CloudWatch 指標的許可,包括 cloudwatch:GetMetricDatacloudwatch:GetMetricStatisticscloudwatch:ListMetrics。如果沒有這些許可,圖表會轉譯為沒有資料。

如需 Amazon MWAA 發佈指標的完整清單,請參閱 CloudWatch 中的 Apache Airflow 環境指標

儀表板上顯示的指標

儀表板會將圖表組織成六個區段,您可以使用指標區段進行篩選。它顯示一組精選的環境指標;圖表來自AmazonMWAA命名空間 (Apache Airflow 指標) 和AWS/MWAA命名空間 (容器、佇列和資料庫指標)。下表列出每個區段中的圖表,以及每個區段顯示的 CloudWatch 指標。

儀表板圖表及其指標
區段 圖表 CloudWatch 指標
容器 排程器 CPU 使用率 CPUUtilization
容器 排程器記憶體使用率 MemoryUtilization
容器 工作者 CPU 使用率 CPUUtilization (BaseWorker 和 AdditionalWorker)
容器 工作者記憶體使用率 MemoryUtilization (BaseWorker 和 AdditionalWorker)
容器 Web 伺服器 CPU 使用率 CPUUtilization
容器 Web 伺服器記憶體使用率 MemoryUtilization
容器 執行中的工作者容器 CPUUtilization範例計數衍生
容器 工作者活動訊號 CeleryWorkerHeartbeat
資料庫和佇列 資料庫可用記憶體 FreeableMemory
資料庫和佇列 資料庫 CPU 使用率 CPUUtilization
資料庫和佇列 資料庫連線 DatabaseConnections
資料庫和佇列 資料庫寫入延遲 WriteLatency
資料庫和佇列 最舊的佇列任務存留期 ApproximateAgeOfOldestTask
排程器 排程器活動訊號 SchedulerHeartbeat
排程器 排程器關鍵區段持續時間 CriticalSectionDuration
排程器 排程器任務狀態 TasksExecutable, TasksStarving, TasksWithoutDagRun
排程器 在外部終止的任務 TasksKilledExternally
排程器 執行器開啟插槽 OpenSlots
DAG 處理 DAG 剖析時間 TotalParseTime
DAG 處理 DAG 包大小 DagBagSize
DAG 處理 DAG 匯入錯誤 ImportErrors, DAGFileRefreshError
DAG 處理 DAG 處理器運作狀態 ProcessorTimeouts, ManagerStalls
任務​ 任務佇列 QueuedTasks, RunningTasks
任務​ 任務成功和失敗 TaskInstanceSuccesses, TaskInstanceFailures
任務​ Zombie 任務已終止 ZombiesKilled
觸發器 觸發器活動訊號 TriggererHeartbeat
觸發器 觸發結果 TriggersSucceeded, TriggersFailed
注意

觸發器圖表只會顯示在較新的 Apache Airflow 版本上。觸發結果需要 Apache Airflow v2.7.2 或更新版本,觸發器活動訊號需要 v2.8.1 或更新版本。

儀表板會顯示彙總的全環境指標。它不會繪製 Apache Airflow 依 DAG、任務、集區、運算子或 DAG 檔案發佈的高基數指標圖表,也不會繪製容器 CPU 和記憶體圖表,但不是每個容器指標。如需已發佈指標的完整清單,請參閱 CloudWatch 中的 Apache Airflow 環境指標Amazon MWAA 的容器、佇列和資料庫指標

建立和監控警示

環境詳細資訊頁面包含警示窗格,您可以在其中在 CloudWatch 中建立和管理警示,然後在內容中監控警示。窗格會顯示環境警示表格,其中列出歸因於環境的 CloudWatch 警示。Amazon MWAA 會依 CloudWatch 命名空間和Environment維度比對這些警示,因此資料表包含您自己撰寫的警示,而不只是建議的警示。

Amazon MWAA 環境詳細資訊頁面上的警示窗格,顯示環境警示表上方的在 CloudWatch 中建立建議的警示和管理按鈕。 CloudWatch

窗格標頭顯示目前有多少環境警示處於 ALARM 狀態的警示計數中。環境警示資料表具有下列資料欄。

名稱 狀態 條件 Action 上次更新
警示名稱,連結至 CloudWatch 主控台中的警示。 警示狀態:處於警示中、OK 或資料不足。 警示條件,針對持續時間內的 n 個資料點顯示為 警示的動作,例如通知 SNS 主題主題,或者如果警示沒有動作,則為 - 警示上次更新的日期和時間。
注意

若要檢視此資料表中的警示,您必須擁有 cloudwatch:DescribeAlarms許可。

如果環境沒有警示,環境警示資料表會是空的,並提供建立建議警示的指引,以開始監控您的環境。

警示窗格提供下列兩個按鈕:

  • 建立建議的警示 – 在新索引標籤中開啟 CloudFormation 快速建立堆疊。堆疊會命名為 ,MWAA-alarms-environment-name並為環境建立一組標準建議警示。

  • CloudWatch 中管理 – 在 CloudWatch 主控台中開啟警示頁面。

建立建議的警示
  1. 開啟 Amazon MWAA 主控台,然後選擇您的環境以開啟其詳細資訊頁面。

  2. 監控檢視中,找到警示窗格。

  3. 選擇建立建議的警示。 CloudFormation 快速建立堆疊會在新的瀏覽器索引標籤中開啟。

  4. 在 CloudFormation 主控台中檢閱堆疊。如果出現提示,請選取 CloudFormation 可能建立 IAM 資源的確認。

  5. 選擇建立堆疊

CloudFormation 建立堆疊後,警示會出現在環境警示資料表和 CloudWatch 主控台中。如需每個警示狀態所代表意義的詳細資訊,請參閱 警示狀態概觀

當您選擇建立建議的警示時, CloudFormation 範本會建立下列警示。CloudWatch 會在 5 分鐘 (300 秒) 期間評估所有這些警示。

警示狀態概觀

警示擁有以下可能的狀態:

  • OK – 指標或表達式在定義的閾值內。

  • ALARM – 指標或表達式在定義的閾值外。

  • INSUFFICIENT_DATA – 警示剛開始無法使用指標,或資料不足無法讓指標判斷警示狀態。

自訂儀表板和警示範例

您可以將自己的儀表板和警示定義為基礎設施的程式碼,以程式設計方式建置自訂儀表板,或將跨多個 Amazon MWAA 環境的監控標準化。做為環境詳細資訊頁面上內建儀表板的替代方案,下列教學課程和 CloudFormation 範本會建立自訂監控儀表板。此儀表板會顯示 Amazon MWAA 環境所選指標的圖表。

關於這些指標

以下清單說明本節中教學課程和範本定義在自訂儀表板中建立的每個指標。

  • QueuedTasks - 佇列狀態的任務數量。對應至 executor.queued_tasks Apache Airflow 指標。

  • TasksPending - 執行器中待定的任務數量。對應至 scheduler.tasks.pending Apache Airflow 指標。

    注意

    不適用於 Apache Airflow v2.2 和更新版本。

  • RunningTasks - 在執行器中執行的任務數量。對應至 executor.running_tasks Apache Airflow 指標。

  • SchedulerHeartbeat - Apache Airflow 在排程器任務上執行的簽入次數。對應至 scheduler_heartbeat Apache Airflow 指標。

  • TotalParseTime - 掃描和匯入所有 DAG 檔案一次所需的秒數。對應至 dag_processing.total_parse_time Apache Airflow 指標。

關於儀表板

下圖顯示本節中教學課程和範本定義所建立的監控儀表板。

此圖描述在 Amazon MWAA 主控台上尋找私有網路選項的位置。

使用教學 AWS 課程

您可以使用下列 AWS 教學課程,自動為目前部署的任何 Amazon MWAA 環境建立運作狀態儀表板。它也會在所有 Amazon MWAA 環境中為運作狀態不佳的工作者和排程器活動訊號失敗建立 CloudWatch 警示。

使用 CloudFormation

您可以使用本節中的 CloudFormation 範本定義,在 CloudWatch 中建立監控儀表板,然後在 CloudWatch 主控台上新增警示,以在指標超過特定閾值時接收通知。若要使用此範本定義建立堆疊,請參閱在 CloudFormation 主控台上建立堆疊。若要將警示新增至儀表板,請參閱使用警示

AWSTemplateFormatVersion: "2010-09-09" Description: Creates MWAA Cloudwatch Dashboard Parameters: DashboardName: Description: Enter the name of the CloudWatch Dashboard Type: String EnvironmentName: Description: Enter the name of the MWAA Environment Type: String Resources: BasicDashboard: Type: AWS::CloudWatch::Dashboard Properties: DashboardName: !Ref DashboardName DashboardBody: Fn::Sub: '{ "widgets": [ { "type": "metric", "x": 0, "y": 0, "width": 12, "height": 6, "properties": { "view": "timeSeries", "stacked": true, "metrics": [ [ "AmazonMWAA", "QueuedTasks", "Function", "Executor", "Environment", "${EnvironmentName}" ] ], "region": "${AWS::Region}", "title": "QueuedTasks ${EnvironmentName}", "period": 300 } }, { "type": "metric", "x": 0, "y": 6, "width": 12, "height": 6, "properties": { "view": "timeSeries", "stacked": true, "metrics": [ [ "AmazonMWAA", "RunningTasks", "Function", "Executor", "Environment", "${EnvironmentName}" ] ], "region": "${AWS::Region}", "title": "RunningTasks ${EnvironmentName}", "period": 300 } }, { "type": "metric", "x": 12, "y": 6, "width": 12, "height": 6, "properties": { "view": "timeSeries", "stacked": true, "metrics": [ [ "AmazonMWAA", "SchedulerHeartbeat", "Function", "Scheduler", "Environment", "${EnvironmentName}" ] ], "region": "${AWS::Region}", "title": "SchedulerHeartbeat ${EnvironmentName}", "period": 300 } }, { "type": "metric", "x": 12, "y": 0, "width": 12, "height": 6, "properties": { "view": "timeSeries", "stacked": true, "metrics": [ [ "AmazonMWAA", "TasksPending", "Function", "Scheduler", "Environment", "${EnvironmentName}" ] ], "region": "${AWS::Region}", "title": "TasksPending ${EnvironmentName}", "period": 300 } }, { "type": "metric", "x": 0, "y": 12, "width": 24, "height": 6, "properties": { "view": "timeSeries", "stacked": true, "region": "${AWS::Region}", "metrics": [ [ "AmazonMWAA", "TotalParseTime", "Function", "DAG Processing", "Environment", "${EnvironmentName}" ] ], "title": "TotalParseTime ${EnvironmentName}", "period": 300 } } ] }'

刪除指標和儀表板

如果您刪除 Amazon MWAA 環境,也會刪除對應的儀表板。CloudWatch 指標會儲存十五 (15) 個月,且無法刪除。CloudWatch 主控台會將指標搜尋限制在上次擷取指標後兩 (2) 週,以確保為您的 Amazon MWAA 環境顯示最新的執行個體。若要進一步了解,請參閱 Amazon CloudWatch FAQs

後續步驟?