监控 Amazon MWAA 上的控制面板和警报 - Amazon Managed Workflows for Apache Airflow
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

监控 Amazon MWAA 上的控制面板和警报

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

Apache Airflow 公开了许多进程的指标,包括 DAG 进程数、DAG 程序包的大小、当前正在运行的任务、任务失败和成功。创建环境时,Airflow 被配置为自动将 Amazon MWAA 环境的指标发送到。 CloudWatch本页介绍如何为 Amazon MWAA 环境中的 CloudWatch Airflow 指标创建运行状况控制面板。

指标

您可以为 Apache Airflow 版本的任何可用指标创建自定义控制面板和警报。每个指标都对应一个 Apache Airflow 关键性能指标(KPI)。要查看指标列表,请参阅:

警报状态概述

指标告警可能具有以下几种状态:

  • OK – 指标或表达式在定义的阈值范围内。

  • ALARM – 指标或表达式超出定义的阈值。

  • INSUFFICIENT_DATA(数据不足) – 告警刚刚启动,指标不可用,或者指标没有足够的数据以确定告警状态。

自定义控制面板和警报示例

您可以构建自定义监控控制面板,显示 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 控制台上哪里可以找到私有网络选项。

使用 Amazon 教程

您可以使用以下 Amazon 教程为当前部署的任何 Amazon MWAA 环境自动创建运行状况控制面板。它还会针对所有 Amazon MWAA 环境中的不健康工作人员和计划程序心跳故障创建 CloudWatch 警报。

使用 Amazon CloudFormation

您可以使用本节中的 Amazon CloudFormation 模板定义在中创建监控面板 CloudWatch,然后在 CloudWatch 控制台上添加警报,以便在指标超过特定阈值时接收通知。要使用此模板定义创建堆栈,请参阅在Amazon 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 常见问题

接下来做什么?