在 Amazon 上监控控制面板和警报 MWAA - Amazon Managed Workflows for Apache Airflow

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

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

您可以在亚马逊 CloudWatch 创建自定义控制面板,并为特定指标添加警报,以监控适用于 Apache Airflow 的亚马逊托管工作流程环境的运行状况。当警报出现在控制面板上时,当警报ALARM处于状态时会变为红色,这样您就可以更轻松地主动监控 Amazon MWAA 环境的运行状况。

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

指标

您可以为 Apache Airflow 版本的任何可用指标创建自定义控制面板和警报。每个指标都对应一个 Apache 气流关键性能指标 () 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 控制台上哪里可以找到 “专用网络” 选项。

使用 AWS 教程

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

使用 AWS CloudFormation

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

接下来做什么?