

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

# 在 Amazon MWAA 上監控儀表板和警示
<a name="monitoring-dashboard"></a>

您可以在 Amazon CloudWatch 中建立自訂儀表板，並為特定指標新增警示，以監控 Amazon Managed Workflows for Apache Airflow 環境的運作狀態。當警示在儀表板上時，它會在處於 `ALARM` 狀態時變成紅色，讓您更輕鬆地主動監控 Amazon MWAA 環境的運作狀態。

Apache Airflow 公開多個程序的指標，包括 DAG 程序數量、DAG 包大小、目前正在執行的任務、任務失敗和成功。當您建立環境時，Airflow 會自動將 Amazon MWAA 環境的指標傳送至 CloudWatch。此頁面說明如何為 Amazon MWAA 環境的 CloudWatch 中的 Airflow 指標建立運作狀態儀表板。

**Contents**
+ [指標](#monitoring-dashboard-metrics)
+ [警示狀態概觀](#monitoring-dashboard-states)
+ [自訂儀表板和警示範例](#monitoring-dashboard-custom)
  + [關於這些指標](#monitoring-dashboard-custom-about)
  + [關於儀表板](#monitoring-dashboard-custom-about-dash)
  + [使用教學 AWS 課程](#monitoring-dashboard-tutorials)
  + [使用 CloudFormation](#monitoring-dashboard-cfn)
+ [刪除指標和儀表板](#monitoring-dashboard-delete)
+ [後續步驟？](#monitoring-dashboard-next-up)

## 指標
<a name="monitoring-dashboard-metrics"></a>

您可以為 Apache Airflow 版本可用的任何指標建立自訂儀表板和警示。每個指標對應至 Apache Airflow 金鑰效能指標 (KPI)。若要存取指標清單，請參閱：
+ [CloudWatch 中的 Apache Airflow 環境指標](access-metrics-cw.md)

## 警示狀態概觀
<a name="monitoring-dashboard-states"></a>

警示擁有以下可能的狀態：
+ `OK` – 指標或表達式在定義的閾值內。
+ `ALARM` – 指標或表達式在定義的閾值外。
+ `INSUFFICIENT_DATA` – 警示剛開始無法使用指標，或資料不足無法讓指標判斷警示狀態。

## 自訂儀表板和警示範例
<a name="monitoring-dashboard-custom"></a>

您可以建置自訂監控儀表板，以顯示 Amazon MWAA 環境所選指標的圖表。

### 關於這些指標
<a name="monitoring-dashboard-custom-about"></a>

以下清單說明本節中教學課程和範本定義在自訂儀表板中建立的每個指標。
+ *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 指標。

### 關於儀表板
<a name="monitoring-dashboard-custom-about-dash"></a>

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

![此圖說明在 Amazon MWAA 主控台上尋找私有網路選項的位置。](http://docs.aws.amazon.com/zh_tw/mwaa/latest/userguide/images/cw-dashboard.png)


### 使用教學 AWS 課程
<a name="monitoring-dashboard-tutorials"></a>

您可以使用下列 AWS 教學課程，自動為目前部署的任何 Amazon MWAA 環境建立運作狀態儀表板。它也會在所有 Amazon MWAA 環境中為運作狀態不佳的工作者和排程器活動訊號失敗建立 CloudWatch 警示。
+ [Amazon MWAA 的 CloudWatch Dashboard Automation](https://github.com/aws-samples/mwaa-dashboard)

### 使用 CloudFormation
<a name="monitoring-dashboard-cfn"></a>

您可以使用本節中的 CloudFormation 範本定義，在 CloudWatch 中建立監控儀表板，然後在 CloudWatch 主控台上新增警示，以在指標超過特定閾值時接收通知。若要使用此範本定義建立堆疊，請參閱[在 CloudFormation 主控台上建立堆疊](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)。若要將警示新增至儀表板，請參閱[使用警示](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)。

```
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
                      }
                  }
              ]
          }'
```

## 刪除指標和儀表板
<a name="monitoring-dashboard-delete"></a>

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

## 後續步驟？
<a name="monitoring-dashboard-next-up"></a>
+ 了解如何建立 DAG，以查詢您環境的 Amazon Aurora PostgreSQL 中繼資料資料庫，並將自訂指標發佈至 中的 CloudWatch[使用 DAG 在 CloudWatch 中寫入自訂指標](samples-custom-metrics.md)。