

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

# 中的 Apache Airflow 环境指标 CloudWatch
<a name="access-metrics-cw"></a>

Apache Airflow v2 和 v3 已经设置为收集适用于 Apache Airflow 的亚马逊托管工作流程环境的 [StatSD](https://github.com/etsy/statsd) 指标并将其发送到亚马逊。 CloudWatchApache Airflow 发送的指标的完整列表可在*《Apache Airflow 参考指南》*的 [指标](https://airflow.apache.org/docs/apache-airflow/stable/administration-and-deployment/logging-monitoring/metrics.html)页面上找到。本页介绍了中可用的 Apache Airflow 指标以及如何在控制台 CloudWatch 中访问指标。 CloudWatch 

**Contents**
+ [术语](#access-metrics-cw-terms)
+ [Dimensions](#metrics-dimensions)
+ [在 CloudWatch 控制台中访问指标](#access-metrics-cw-console)
+ [Apache Airflow 指标可用于 CloudWatch](#available-metrics-cw)
  + [Apache Airflow 计数器](#counters-metrics)
  + [Apache Airflow 计](#gauges-metrics)
  + [Apache Airflow 计时器](#timers-metrics)
+ [选择要报告的指标](#choosing-metrics)
+ [接下来做什么？](#mwaa-metrics202-next-up)

## 术语
<a name="access-metrics-cw-terms"></a>

**命名空间**  
命名空间是 Amazon 服务 CloudWatch 指标的容器。对于Amazon MWAA，命名空间为 *AmazonMWAA*。

**CloudWatch 指标**  
 CloudWatch 指标表示特定于的一组按时间顺序排列的数据点。 CloudWatch

**Apache Airflow 指标**  
特定于 Apache Airflow 的[指标](https://airflow.apache.org/docs/apache-airflow/stable/administration-and-deployment/logging-monitoring/metrics.html )。

**维度**  
维度是作为指标标识一部分的 name/value 配对。

**单位**  
所有统计数据都有度量单位。对于 Amazon MWAA，单位包括*计数*、*秒*和*毫秒*。对于 Amazon MWAA，单位是根据原始 Airflow 指标中的单位设置的。

## Dimensions
<a name="metrics-dimensions"></a>

本节介绍中 Apache Airflow 指标的 CloudWatch *维度*分组。 CloudWatch


| 维度 | 说明 | 
| --- | --- | 
| DAG | 表示特定的 Apache Airflow DAG 名称。 | 
| DAG 文件名 | 表示特定的 Apache Airflow DAG 文件名称。 | 
| 函数 | 此维度用于改进中的指标分组 CloudWatch。 | 
| 任务 | 表示计划程序运行的 Apache Airflow 任务。始终具有 `Job` 的值。 | 
| 运算符 | 表示特定的 Apache Airflow 运算符。 | 
| 池 | 表示特定的 Apache Airflow 工作线程池。 | 
| Task | 表示特定的 Apache Airflow 任务。 | 
| HostName | 表示正在运行的特定的 Apache Airflow 进程的主机名。 | 

## 在 CloudWatch 控制台中访问指标
<a name="access-metrics-cw-console"></a>

本节介绍如何访问特定 DAG 中的 CloudWatch 性能指标。

**访问维度的性能指标**

1. 在 CloudWatch 控制台上打开 [“指标” 页面](https://console.amazonaws.cn/cloudwatch/home#metricsV2:graph=~())。

1. 选择你的 Amazon Web Services 区域。

1. 选择 **AmazonMWAA** 命名空间。

1. 在**所有指标**选项卡中，选择一个维度。例如，*DAG、环境*。

1. 为维 CloudWatch 度选择一个指标。例如，*TaskInstanceSuccesses* 或 *TaskInstanceDuration*。选择**绘制所有搜索结果的图表**。

1. 选择**图表化指标**选项卡可访问 Apache Airflow 指标的性能统计信息，例如 *DAG、环境、任务*。

## Apache Airflow 指标可用于 CloudWatch
<a name="available-metrics-cw"></a>

本节介绍发送到的 Apache Airflow 指标和维度。 CloudWatch

### Apache Airflow 计数器
<a name="counters-metrics"></a>

本节中的 Apache Airflow 指标包含有关 [Apache Airflow *计数器*](https://airflow.apache.org/docs/apache-airflow/stable/administration-and-deployment/logging-monitoring/metrics.html#counters)的数据。


| CloudWatch 指标 | Apache Airflow 指标 | 单位 | 维度 | 
| --- | --- | --- | --- | 
| SLAMissed 仅适用于 Apache Airflow v2.4.3 到 v2.10.3。  | sla\_missed | 计数 | 函数，计划程序 | 
| 失败了 SLACallback 仅适用于 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，全部 | 
| 失败的SLAEmail尝试 适用于 Apache Airflow v3.0.6 及更高版本。  | sla\_email\_notification\_failure | 计数 | 函数，计划程序 | 
| TaskInstanceFinished | ti.finish.{dag\_id}.{task\_id}.{state} | 计数 | DAG, {dag\_id}<br />任务，{task\_id}<br />状态，{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，全部<br />任务，全部 | 
| 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，全部<br />任务，全部 | 
| TaskInstanceFailures | ti\_failures | 计数 | DAG，全部<br />任务，全部 | 
| TaskInstanceSuccesses | ti\_successes | 计数 | DAG，全部<br />任务，全部 | 
| 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\_`{operator_name}` 适用于 Apache Airflow v2.7.2 及更高版本。  | 计数 | 运算符，`{operator_name}` | 
| ZombiesKilled | zombies\_killed | 计数 | DAG，全部<br />任务，全部 | 

### Apache Airflow 计
<a name="gauges-metrics"></a>

本节中的 Apache Airflow 指标包含有关 [Apache Airflow *计*](https://airflow.apache.org/docs/apache-airflow/stable/administration-and-deployment/logging-monitoring/metrics.html#gauges)的数据。


| 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.runn。 {{{hostname}}} | 计数 | 函数，触发<br />HostName, {{{hostname}}} | 
| PoolDeferredSlots 在 Apache Airflow v2.7.2 及更高版本中可用。  | pool.deferred\_slots.`{pool_name}` | 计数 | 池，{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}<br />任务，{task\_id} | 
| TaskMemoryUsage 在 Apache Airflow v2.10.1 及更高版本中可用。  | mem.usage.{dag\_id}.{task\_id} | 百分比 | DAG, {dag\_id}<br />任务，{task\_id} | 

### Apache Airflow 计时器
<a name="timers-metrics"></a>

本节中的 Apache Airflow 指标包含有关 [Apache Airflow *计时器*](https://airflow.apache.org/docs/apache-airflow/stable/administration-and-deployment/logging-monitoring/metrics.html#timers)的数据。


| CloudWatch 指标 | Apache Airflow 指标 | 单位 | 维度 | 
| --- | --- | --- | --- | 
| 收集 DBDags | collect\_db\_dags | 毫秒 | 函数，DAG 处理 | 
| CriticalSectionDuration | scheduler.critical\_section\_duration | 毫秒 | 函数，计划程序 | 
| CriticalSectionQueryDuration 适用于 Apache Airflow v2.5.1 及更高版本。  | scheduler.critical\_section\_query\_duration | 毫秒 | 函数，计划程序 | 
| DAGDependency查看 | dagrun.dependency-check.{dag\_id} | 毫秒 | DAG, {dag\_id} | 
| DAGDuration失败了 | dagrun.duration.failed.{dag\_id} | 毫秒 | DAG, {dag\_id} | 
| DAGDuration成功 | dagrun.duration.success.{dag\_id} | 毫秒 | DAG, {dag\_id} | 
| DAGFileProcessingLastDuration | dag\_processing.last\_duration.{dag\_filename} | 秒 | DAG 文件名，{dag\_filename} | 
| DAGSchedule延迟 | 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}<br />任务，{task\_id} | 
| TaskInstanceQueuedDuration | dag.`{dag_id}`.`{task_id}`.queued\_duration 适用于 Apache Airflow v2.7.2 及更高版本。  | 毫秒 | DAG, {dag\_id}<br />任务，{task\_id} | 
| TaskInstanceScheduledDuration 适用于 Apache Airflow v2.7.2 及更高版本。  | dag.`{dag_id}`.`{task_id}`.scheduled\_duration | 毫秒 | DAG, {dag\_id}<br />任务，{task\_id} | 

## 选择要报告的指标
<a name="choosing-metrics"></a>

[您可以使用以下 Amazon MWAA 配置选项来选择 CloudWatch向哪些 Apache Airflow 发送或屏蔽的 Apache Airflow 指标：](configuring-env-variables.md)
+ **`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`。

## 接下来做什么？
<a name="mwaa-metrics202-next-up"></a>
+ 浏览用于发布环境运行状况指标的 Amazon MWAA API 操作，网址为。[PublishMetrics](https://docs.amazonaws.cn/mwaa/latest/API/API_PublishMetrics.html)