

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 监控 Amazon MWAA 上的控制面板和警报
<a name="monitoring-dashboard"></a>

您可以在亚马逊 CloudWatch 创建自定义控制面板，并为特定指标添加警报，以监控适用于 Apache Airflow 的亚马逊托管工作流程环境的运行状况。当某个警报位于控制面板上且处于 `ALARM` 状态，则会变成红色，便于主动监控 Amazon MWAA 的运行状况。

Apache Airflow 公开了几个进程的指标，包括 DAG 进程数、DAG 程序包的大小、当前正在运行的任务、任务失败和成功。当您创建环境时，Airflow 会自动将亚马逊 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）。要访问指标列表，请参阅：
+ [中的 Apache Airflow 环境指标 CloudWatch](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_cn/mwaa/latest/userguide/images/cw-dashboard.png)


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

您可以使用以下 AWS 教程为当前部署的任何 Amazon MWAA 环境自动创建运行状况控制面板。它还会针对所有 Amazon MWAA 环境中的不健康工作人员和计划程序心跳故障创建 CloudWatch 警报。
+ [CloudWatch 亚马逊 MWAA 控制面板自动化](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)