本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
监控 Amazon MWAA 上的控制面板和警报
您可以在亚马逊 CloudWatch 中创建自定义控制面板,为特定指标添加警报,以监控适用于 Apache Airflow 的 Amazon 托管工作流环境的运行状况。当某个警报位于控制面板上且处于 ALARM 状态,则会变成红色,便于主动监控 Amazon MWAA 的运行状况。
Apache Airflow 公开了几个进程的指标,包括 DAG 进程数、DAG 程序包的大小、当前正在运行的任务、任务失败和成功。当您创建环境时,Airflow 会自动将亚马逊 MWAA 环境的指标发送到。 CloudWatch本页介绍如何为亚马逊 MWAA 环境中的 CloudWatch Airflow 指标创建运行状况控制面板。
指标
您可以为 Apache Airflow 版本的任何可用指标创建自定义控制面板和警报。每个指标都对应一个 Apache Airflow 关键性能指标(KPI)。要访问指标列表,请参阅:
警报状态概述
指标警报可能具有以下几种状态:
-
OK– 指标或表达式在定义的阈值范围内。 -
ALARM– 指标或表达式超出定义的阈值。 -
INSUFFICIENT_DATA(数据不足) – 警报刚刚启动,指标不可用,或者指标没有足够的数据以确定警报状态。
自定义控制面板和警报示例
您可以构建自定义监控控制面板,显示 Amazon MWAA 环境所选指标的图表。
关于这些指标
以下列表描述了通过本节中的教程和模板定义在自定义控制面板中创建的每个指标。
-
QueuedTasks-处于排队状态的任务数量。对应于
executor.queued_tasksApache Airflow 指标。 -
TasksPending-执行器中待处理的任务数量。对应于
scheduler.tasks.pendingApache Airflow 指标。注意
不适用于 Apache Airflow v2.2 及更高版本。
-
RunningTasks-在执行器中运行的任务数量。对应于
executor.running_tasksApache Airflow 指标。 -
SchedulerHeartbeat-Apache Airflow 在调度程序任务上执行的签入次数。与
scheduler_heartbeatApache Airflow 指标相对应。 -
TotalParseTime-一次扫描和导入所有 DAG 文件所花费的秒数。对应于
dag_processing.total_parse_timeApache Airflow 指标。
关于控制面板
下图显示了根据本节中的教程和模板定义创建的监控面板。
使用 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 } } ] }'
删除指标和控制面板
如果您删除亚马逊 MWAA 环境,相应的控制面板也会被删除。 CloudWatch 指标存储十五 (15) 个月,无法删除。 CloudWatch 控制台将指标搜索限制在上次采集指标后的两 (2) 周内,以确保显示您的亚马逊 MWAA 环境的最新实例。要了解更多信息,请参阅亚马逊 CloudWatch 常见问题解答
接下来做什么?
-
了解如何创建 DAG 来查询您的环境的 Amazon Aurora PostgreSQL 元数据数据库并将自定义指标发布到 CloudWatch 中。使用 DAG 在 CloudWatch 中编写自定义指标