

# 使用 CloudWatch 监控 Athena 查询指标
<a name="query-metrics-viewing"></a>

如果选择 [publish query metrics to CloudWatch](athena-cloudwatch-metrics-enable.md)（将查询指标发布到 CloudWatch）选项，Athena 会将与查询相关的指标发布到 Amazon CloudWatch。您可以创建自定义控制面板，对 CloudWatch 中的指标设置警报和触发器，或从 Athena 控制台直接使用预先填充的控制面板。

为工作组中的查询启用查询指标时，这些指标将显示在 **Workgroups**（工作组）面板中的 **Metrics**（指标）选项卡，用于 Athena 控制台中的每个工作组。

Athena 会将以下指标发布到 CloudWatch 控制台：
+ `DPUAllocated` – 在容量预留中预置的用于运行查询的 DPU（数据处理单元）总数。
+ `DPUConsumed` – 在预留的给定时间内，处于 `RUNNING` 状态的查询主动消耗的 DPU 数量。只有当工作组与容量预留关联并且包括与预留关联的所有工作组时，才会发出指标。
+ `DPUCount` – 查询消耗的最大 DPU 数量，仅在查询完成时发布一次。
+ `EngineExecutionTime` – 运行查询所耗费的毫秒数。
+ `ProcessedBytes` – Athena 为每个 DML 查询扫描的字节数。
+ `QueryPlanningTime` – Athena 计划查询处理流程所耗费的毫秒数。
+ `QueryQueueTime` – 查询在查询队列中等待资源所耗费的毫秒数。
+ `ServicePreProcessingTime` – 在将查询提交给查询引擎之前，Athena 用于预处理查询的毫秒数。
+ `ServiceProcessingTime` – 查询引擎执行完查询后，Athena 处理查询结果所耗费的毫秒数。
+ `TotalExecutionTime` – Athena 运行 DDL 或 DML 查询所耗费的毫秒数。

有关更完整的说明，请参阅本文档后面的 [Athena 的 CloudWatch 指标与维度列表](#athena-cloudwatch-metrics-table)。

这些指标具有以下维度：
+ `CapacityReservation` – 用于执行查询的容量预留的名称（如果适用）。
+ `QueryState`：`SUCCEEDED`、`FAILED` 或 `CANCELED`
+ `QueryType`：`DML`、`DDL` 或 `UTILITY`
+ `WorkGroup` – 工作组的名称

Athena 会将以下指标发布到 `AmazonAthenaForApacheSpark` 命名空间下的 CloudWatch 控制台：
+ `DPUCount` – 会话期间为执行计算而使用的 DPU 数量。

该指标具有以下维度：
+ `SessionId` – 提交计算的会话 ID。
+ `WorkGroup` – 工作组名称。

有关更多信息，请参阅本主题后面的 [Athena 的 CloudWatch 指标与维度列表](#athena-cloudwatch-metrics-table)。有关 Athena 使用情况指标的信息，请参阅 [使用 CloudWatch 监控 Athena 使用情况指标](monitoring-athena-usage-metrics.md)。

您可以在 Athena 控制台或 CloudWatch 控制台中查看查询指标。

## 在 Athena 控制台中查看查询指标
<a name="query-metrics-viewing-athena-console"></a>

**在 Athena 控制台中查看工作组的查询指标**

1. 从 [https://console.aws.amazon.com/athena/](https://console.amazonaws.cn/athena/home) 打开 Athena 控制台。

1. 如果控制台导航窗格不可见，请选择左侧的扩展菜单。  
![\[选择扩展菜单。\]](http://docs.amazonaws.cn/athena/latest/ug/images/nav-pane-expansion.png)

1. 在导航窗格中，选择 **Workgroups**（工作组）。

1. 从列表中选择所需的工作组，然后选择 **Metrics**（指标）选项卡。

   此时将显示指标控制面板。
**注意**  
如果您最近刚为工作组启用了指标和/或没有最近的查询活动，则控制面板上的图形可能为空。根据您在下一步中指定的间隔从 CloudWatch 检索查询活动。

1. 在 **Metrics**（指标）部分中，选择 Athena 应该用于从 CloudWatch 中提取查询指标的指标间隔，或指定自定义间隔。  
![\[在 Athena 控制台中为工作组指定指标检索间隔。\]](http://docs.amazonaws.cn/athena/latest/ug/images/wg-custom-interval.png)

1. 要刷新显示的指标，请选择刷新图标。  
![\[选择刷新图标。\]](http://docs.amazonaws.cn/athena/latest/ug/images/wg-refresh-metrics.png)

1. 单击刷新图标旁边的箭头，选择指标显示的更新频率。  
![\[为 Athena 控制台中的工作组指标显示选择刷新间隔。\]](http://docs.amazonaws.cn/athena/latest/ug/images/wg-choose-refresh-interval.png)

## 在 CloudWatch 控制台中查看查询指标
<a name="query-metrics-viewing-cw-console"></a>

**要使用 Amazon CloudWatch 控制台查看指标**

1. 通过 [https://console.aws.amazon.com/cloudwatch/](https://console.amazonaws.cn/cloudwatch/) 打开 CloudWatch 控制台。

1. 在导航窗格中，依次选择 **Metrics**（指标）、**All metrics**（所有指标）。

1. 选择 **Amazon/Athena** 命名空间。

## 使用 Amazon CLI 查看查询指标
<a name="query-metrics-viewing-cli"></a>

**使用 Amazon CLI 查看指标**
+ 请执行以下操作之一：
  + 要列出 Athena 的指标，请打开命令提示符，然后使用以下命令：

    ```
    aws cloudwatch list-metrics --namespace "AWS/Athena"
    ```
  + 要列出所有可用的指标，请使用以下命令：

    ```
    aws cloudwatch list-metrics"
    ```

## Athena 的 CloudWatch 指标与维度列表
<a name="athena-cloudwatch-metrics-table"></a>

如果您在 Athena 中启用了 CloudWatch 指标，则它会按工作组将以下指标发送到 CloudWatch。以下指标使用 `AWS/Athena` 命名空间。


| 指标名称 | 说明 | 
| --- | --- | 
| DPUAllocated |  在容量预留中预置的用于运行查询的 DPU（数据处理单元）总数。  | 
| DPUConsumed | 在预留的给定时间内，处于 RUNNING 状态的查询主动消耗的 DPU 数量。只有当工作组与容量预留关联并且包括与预留关联的所有工作组时，才会发出此指标。如果将工作组从一个预留转移到另一个预留，则指标将包含从该工作组属于第一个预留起的数据。有关容量预留的更多信息，请参阅[管理查询处理容量](capacity-management.md)。 | 
| DPUCount | 查询消耗的最大 DPU 数量，仅在查询完成时发布一次。只有工作组附加到了容量预留，才会发出此指标。 | 
| EngineExecutionTime |  运行查询所花费的毫秒数。  | 
| ProcessedBytes |  Athena 为每个 DML 查询扫描的字节数。对于已取消的查询（由用户取消，或者因为达到限制而自动取消），此指标包含在取消时间之前扫描的数据量。对于 DDL 或 CTAS 查询，不会报告此指标。  | 
| QueryPlanningTime | Athena 计划查询处理流程所花费的毫秒数。这包括从数据来源检索表分区所花费的时间。请注意，由于查询引擎执行查询计划，因此查询计划时间是 EngineExecutionTime 的子集。 | 
| QueryQueueTime | 查询在查询队列中等待资源所花的毫秒数。请注意，如果发生临时错误，则可以自动将查询添加回队列。 | 
| ServicePreProcessingTime | 在将查询提交给查询引擎之前，Athena 用于预处理查询的毫秒数。 | 
| ServiceProcessingTime | 查询引擎执行完查询后，Athena 处理查询结果所耗费的毫秒数。 | 
| TotalExecutionTime | Athena 运行 DDL 或 DML 查询所花费的毫秒数。TotalExecutionTime 包括 QueryQueueTime、 QueryPlanningTime、EngineExecutionTime 和 ServiceProcessingTime。 | 

Athena 的指标具有以下维度。


| 维度 | 说明 | 
| --- | --- | 
| CapacityReservation |  用于执行查询的容量预留的名称（如适用）。如果不使用容量预留，此维度不会返回任何数据。  | 
| QueryState |  查询状态。 有效统计数据：SUCCEEDED（成功）、FAILED（失败）或 CANCELED（已取消）。  | 
| QueryType |  查询类型。 有效统计数据：`DDL`、`DML` 或 `UTILITY`。运行的查询语句的类型。`DDL` 表示 DDL（数据定义语言）查询语句。`DML` 表示 DML（数据操作语言）查询语句，例如 `CREATE TABLE AS SELECT`。`UTILITY` 表示 DDL 和 DML 以外的查询语句，例如 `SHOW CREATE TABLE` 或 `DESCRIBE TABLE`。  | 
| 工作组 |  工作组的名称。  | 