CloudWatch 中的 Apache Airflow 环境指标
Apache Airflow v2 和 v3 已经设置为收集 Amazon MMWAA 环境的 StatsD
目录
术语
- 命名空间
-
命名空间是用于 AWS 服务的 CloudWatch 指标的容器。对于Amazon MWAA,命名空间为 AmazonMWAA。
- CloudWatch 指标
-
CloudWatch 指标表示 CloudWatch 特定的并且按时间排序的数据点集。
- Apache Airflow 指标
-
特定于 Apache Airflow 的指标
。 - 维度
-
维度是名称/值对,是指标身份的一部分。
- 单位
-
所有统计数据都有度量单位。对于 Amazon MWAA,单位包括计数、秒和毫秒。对于 Amazon MWAA,单位是根据原始 Airflow 指标中的单位设置的。
维度
本节介绍了 CloudWatch 中 Apache Airflow 指标的 CloudWatch 维度分组。
| 维度 | 描述 |
|---|---|
|
DAG |
表示特定的 Apache Airflow DAG 名称。 |
|
DAG 文件名 |
表示特定的 Apache Airflow DAG 文件名称。 |
|
函数 |
此维度用于改进 CloudWatch 中的指标分组。 |
|
作业 |
表示计划程序运行的 Apache Airflow 任务。始终具有 |
|
运算符 |
表示特定的 Apache Airflow 运算符。 |
|
池 |
表示特定的 Apache Airflow 工作线程池。 |
|
任务 |
表示特定的 Apache Airflow 任务。 |
|
HostName |
表示正在运行的特定的 Apache Airflow 进程的主机名。 |
访问 CloudWatch 控制台的指标
本节介绍如何在 CloudWatch 中访问特定 DAG 的性能指标。
访问维度的性能指标
-
在 CloudWatch 控制台上打开指标页面
。 -
选择您的AWS 区域。
-
选择 AmazonMWAA 命名空间。
-
在所有指标选项卡中,选择一个维度。例如,DAG、环境。
-
选择 CloudWatch 指标维度。例如,TaskInstanceSuccesses 或 TaskInstanceDuration。选择绘制所有搜索结果的图表。
-
选择图表化指标选项卡可访问 Apache Airflow 指标的性能统计信息,例如 DAG、环境、任务。
CloudWatch 中提供的 Apache Airflow 指标
本节介绍发送到 CloudWatch 的 Apache Airflow 指标和维度。
Apache Airflow 计数器
本节中的 Apache Airflow 指标包含有关 Apache Airflow 计数器
| CloudWatch 指标 | Apache Airflow 指标 | 单位 | 维度 |
|---|---|---|---|
|
SLAMissed 注意仅适用于 Apache Airflow v2.4.3 到 v2.10.3。 |
sla_missed |
计数 |
函数,计划程序 |
|
FailedSLACallback 注意仅适用于 Apache Airflow v2.4.3 到 v2.10.3。 |
sla_callback_notification_failure |
计数 |
函数,计划程序 |
|
更新 注意适用于 Apache Airflow v2.6.3 及更高版本。 |
dataset.updates |
计数 |
函数,计划程序 |
|
孤立 注意适用于 Apache Airflow v2.6.3 及更高版本。 |
dataset.orphaned |
计数 |
函数,计划程序 |
|
FailedCeleryTaskExecution 注意适用于 Apache Airflow v2.4.3 及更高版本。 |
celery.execute_command.failure |
计数 |
函数,Celery |
|
FilePathQueueUpdateCount 注意适用于 Apache Airflow v2.6.3 及更高版本。 |
dag_processing.file_path_queue_update_count |
计数 |
函数,计划程序 |
|
CriticalSectionBusy |
scheduler.critical_section_busy |
计数 |
函数,计划程序 |
|
DagBagSize |
dagbag_size |
计数 |
函数,DAG 处理 |
|
DagCallbackExceptions |
dag.callback_exceptions |
计数 |
DAG,全部 |
|
FailedSLAEmailAttempts 注意适用于 Apache Airflow v3.0.6 及更高版本。 |
sla_email_notification_failure |
计数 |
函数,计划程序 |
|
TaskInstanceFinished |
ti.finish.{dag_id}.{task_id}.{state} |
计数 |
DAG, {dag_id} 任务,{task_id} 状态,{state} |
|
JobEnd |
{job_name} _end |
计数 |
任务,{job_name} |
|
JobHeartbeatFailure |
{job_name}_heartbeat_failure |
计数 |
任务,{job_name} |
|
JobStart |
{job_name}_start |
计数 |
任务,{job_name} |
|
ManagerStalls |
dag_processing.manager_stalls |
计数 |
函数,DAG 处理 |
|
OperatorFailures |
operator_failures_{operator_name} |
计数 |
运算符,{operator_name} |
|
OperatorSuccesses |
operator_successes_{operator_name} |
计数 |
运算符,{operator_name} |
|
OtherCallbackCount 注意在 Apache Airflow v2.6.3 及更高版本中可用。 |
dag_processing.other_callback_count |
计数 |
函数,计划程序 |
|
进程 |
dag_processing 进程 |
计数 |
函数,DAG 处理 |
|
SchedulerHeartbeat |
scheduler_heartbeat |
计数 |
函数,计划程序 |
|
StartedTaskInstances |
ti.start.{dag_id}.{task_id} |
计数 |
DAG,全部 任务,全部 |
|
SlaCallbackCount |
dag_processing.sla_callback_count 注意适用于 Apache Airflow v2.6.3 及更高版本。 |
计数 |
函数,计划程序 |
|
TasksKilledExternally |
scheduler.tasks.killed_externally |
计数 |
函数,计划程序 |
|
TaskTimeoutError |
celery.task_timeout_error |
计数 |
函数,Celery |
|
TaskInstanceCreatedUsingOperator |
task_instance_created-{operator_name} |
计数 |
运算符,{operator_name} |
|
TaskInstancePreviouslySucceeded |
previously_succeeded |
计数 |
DAG,全部 任务,全部 |
|
TaskInstanceFailures |
ti_failures |
计数 |
DAG,全部 任务,全部 |
|
TaskInstanceSuccesses |
ti_successes |
计数 |
DAG,全部 任务,全部 |
|
TaskRemovedFromDAG |
task_removed_from_dag.{dag_id} |
计数 |
DAG, {dag_id} |
|
TaskRestoredToDAG |
task_restored_to_dag.{dag_id} |
计数 |
DAG, {dag_id} |
|
TriggersSucceeded 注意适用于 Apache Airflow v2.7.2 及更高版本。 |
triggers.succeeded |
计数 |
函数,触发 |
|
TriggersFailed 注意适用于 Apache Airflow v2.7.2 及更高版本。 |
triggers.failed |
计数 |
函数,触发 |
|
TriggersBlockedMainThread 注意适用于 Apache Airflow v2.7.2 及更高版本。 |
triggers.blocked_main_thread |
计数 |
函数,触发 |
|
TriggerHeartbeat 注意适用于 Apache Airflow v2.8.1 及更高版本。 |
triggerer_heartbeat |
计数 |
函数、触发器 |
|
TaskInstanceCreatedUsingOperator |
airflow.task_instance_created_ 注意适用于 Apache Airflow v2.7.2 及更高版本。 |
计数 |
运算符, |
|
ZombiesKilled |
zombies_killed |
计数 |
DAG,全部 任务,全部 |
Apache Airflow 计
本节中的 Apache Airflow 指标包含有关 Apache Airflow 计
| CloudWatch 指标 | Apache Airflow 指标 | 单位 | 维度 |
|---|---|---|---|
|
DAGFileRefreshError |
dag_file_refresh_error |
计数 |
函数,DAG 处理 |
|
ImportErrors |
dag_processing.import_errors |
计数 |
函数,DAG 处理 |
|
ExceptionFailures |
smart_sensor_operator.exception_failures |
计数 |
函数,智能传感器运算符 |
|
ExecutedTasks |
smart_sensor_operator.executed_tasks |
计数 |
函数,智能传感器运算符 |
|
InfraFailures |
smart_sensor_operator.infailes |
计数 |
函数,智能传感器运算符 |
|
LoadedTasks |
smart_sensor_operator.loaded_tasks |
计数 |
函数,智能传感器运算符 |
|
TotalParseTime |
dag_processing.total_parse_time |
秒 |
函数,DAG 处理 |
|
TriggeredDagRuns 注意在 Apache Airflow v2.6.3 及更高版本中可用。 |
dataset.triggered_dagruns |
计数 |
函数,计划程序 |
|
TriggersRunning 注意在 Apache Airflow v2.7.2 及更高版本中可用。 |
triggers.running. |
计数 |
函数,触发 HostName, |
|
PoolDeferredSlots 注意在 Apache Airflow v2.7.2 及更高版本中可用。 |
pool.deferred_slots. |
计数 |
池,{pool_name} |
|
DAGFileProcessingLastRunSecondsAgo |
dag_processing.last_run.seconds_ago.{dag_filename} |
秒 |
DAG 文件名,{dag_filename} |
|
OpenSlots |
executor.open_slots |
计数 |
函数,执行程序 |
|
OrphanedTasksAdopted |
scheduler.orphaned_tasks.adopted |
计数 |
函数,计划程序 |
|
OrphanedTasksCleared |
scheduler.orphaned_tasks.cleared |
计数 |
函数,计划程序 |
|
PokedExceptions |
smart_sensor_operator.poked_exception |
计数 |
函数,智能传感器运算符 |
|
PokedSuccess |
smart_sensor_operator.poked_success |
计数 |
函数,智能传感器运算符 |
|
PokedTasks |
smart_sensor_operator.poked_tasks |
计数 |
函数,智能传感器运算符 |
|
PoolFailures |
pool.open_slots.{pool_name} |
计数 |
池,{pool_name} |
|
PoolStarvingTasks |
pool.starving_tasks.{pool_name} |
计数 |
池,{pool_name} |
|
PoolOpenSlots |
pool.open_slots.{pool_name} |
计数 |
池,{pool_name} |
|
PoolQueuedSlots |
pool.queued_slots.{pool_name} |
计数 |
池,{pool_name} |
|
PoolRunningSlots |
pool.running_slots.{pool_name} |
计数 |
池,{pool_name} |
|
ProcessorTimeouts |
dag_processing.processor_timeouts |
计数 |
函数,DAG 处理 |
|
QueuedTasks |
executor.queued_tasks |
计数 |
函数,执行程序 |
|
RunningTasks |
executor.running_tasks |
计数 |
函数,执行程序 |
|
TasksExecutable |
scheduler.tasks.executable |
计数 |
函数,计划程序 |
|
TasksPending 注意不适用于 Apache Airflow v2.2 及更高版本。 |
scheduler.tasks.pending |
计数 |
函数,计划程序 |
|
TasksRunning |
scheduler.tasks.running |
计数 |
函数,计划程序 |
|
TasksStarving |
scheduler.tasks.starving |
计数 |
函数,计划程序 |
|
TasksWithoutDagRun |
scheduler.tasks.without_dagrun |
计数 |
函数,计划程序 |
|
DAGFileProcessingLastNumOfDbQueries 注意在 Apache Airflow v2.10.1 及更高版本中可用。 |
dag_processing.last_num_of_db_queries.{dag_filename} |
计数 |
DAG 文件名,{dag_filename} |
|
PoolScheduledSlots 注意在 Apache Airflow v2.10.1 及更高版本中可用。 |
pool.scheduled_slots.{pool_name} |
计数 |
池,{pool_name} |
|
TaskCpuUsage 注意在 Apache Airflow v2.10.1 及更高版本中可用。 |
cpu.usage.{dag_id}.{task_id} |
百分比 |
DAG, {dag_id} 任务,{task_id} |
|
TaskMemoryUsage 注意在 Apache Airflow v2.10.1 及更高版本中可用。 |
mem.usage.{dag_id}.{task_id} |
百分比 |
DAG, {dag_id} 任务,{task_id} |
Apache Airflow 计时器
本节中的 Apache Airflow 指标包含有关 Apache Airflow 计时器
| CloudWatch 指标 | Apache Airflow 指标 | 单位 | 维度 |
|---|---|---|---|
|
CollectDBDags |
collect_db_dags |
毫秒 |
函数,DAG 处理 |
|
CriticalSectionDuration |
scheduler.critical_section_duration |
毫秒 |
函数,计划程序 |
|
CriticalSectionQueryDuration 注意适用于 Apache Airflow v2.5.1 及更高版本。 |
scheduler.critical_section_query_duration |
毫秒 |
函数,计划程序 |
|
DAGDependencyCheck |
dagrun.dependency-check.{dag_id} |
毫秒 |
DAG, {dag_id} |
|
DAGDurationFailed |
dagrun.duration.failed.{dag_id} |
毫秒 |
DAG, {dag_id} |
|
DAGDurationSuccess |
dagrun.duration.success.{dag_id} |
毫秒 |
DAG, {dag_id} |
|
DAGFileProcessingLastDuration |
dag_processing.last_duration.{dag_filename} |
秒 |
DAG 文件名,{dag_filename} |
|
DAGScheduleDelay |
dagrun.schedule_delay.{dag_id} |
毫秒 |
DAG, {dag_id} |
|
FirstTaskSchedulingDelay |
dagrun.{dag_id}.first_task_scheduling_delay |
毫秒 |
DAG, {dag_id} |
|
SchedulerLoopDuration 注意适用于 Apache Airflow v2.5.1 及更高版本。 |
scheduler.scheduler_loop_duration |
毫秒 |
函数,计划程序 |
|
TaskInstanceDuration |
dag.{dag_id}.{task_id}.duration |
毫秒 |
DAG, {dag_id} 任务,{task_id} |
|
TaskInstanceQueuedDuration |
dag. 注意适用于 Apache Airflow v2.7.2 及更高版本。 |
毫秒 |
DAG, {dag_id} 任务,{task_id} |
|
TaskInstanceScheduledDuration 注意适用于 Apache Airflow v2.7.2 及更高版本。 |
dag. |
毫秒 |
DAG, {dag_id} 任务,{task_id} |
选择要报告的指标
您可以使用以下 Amazon MWAA 配置选项选择向 CloudWatch 发送哪些 Apache Airflow 指标,或者由 Apache Airflow 屏蔽哪些 Apache Airflow 指标:
metrics.metrics_allow_list— 逗号分隔的前缀列表,可用于选择环境向 CloudWatch 发送哪些指标。如果您希望 Apache Airflow 不发送所有可用指标,而是选择元素的子集,请使用此选项。例如scheduler,executor,dagrun。metrics.metrics_block_list— 以逗号分隔的前缀列表,用于筛选出以列表元素开头的指标。例如scheduler,executor,dagrun。
如果同时配置 metrics.metrics_allow_list 和 metrics.metrics_block_list,Apache Airflow 将忽略 metrics.metrics_block_list。如果您配置 metrics.metrics_block_list 但未配置 metrics.metrics_allow_list,Apache Airflow 会过滤掉您在 metrics.metrics_block_list 中指定的元素。
注意
metrics.metrics_allow_list 和 metrics.metrics_block_list 配置选项仅适用于 Apache Airflow v2.6.3 及更高版本。对于先前版本的 Apache Airflow,请改用 metrics.statsd_allow_list 和 metrics.statsd_block_list。
接下来做什么?
-
在 PublishMetrics 上浏览用于发布环境运行状况指标的 Amazon MWAA API 操作。