

# 使用 Amazon CloudWatch 在 DynamoDB 中监控指标
<a name="Monitoring-metrics-with-Amazon-CloudWatch"></a>

您可以使用 CloudWatch 监控 DynamoDB，此工具可以从 DynamoDB 收集原始数据，处理为可读取的近实时指标。这些统计数据保留一段时间，这样您就可以访问历史信息，以便更好地了解您的 Web 应用程序或服务的执行情况。默认情况下，DynamoDB 指标数据自动发送到 CloudWatch。有关更多信息，请参阅《Amazon CloudWatch 用户指南》**中的[什么是 Amazon CloudWatch？](https://docs.amazonaws.cn/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html)和[指标保留](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#metrics-retention)。

**Topics**
+ [如何使用 DynamoDB 指标？](#How-do-I-use-DynamoDB-metrics)
+ [在 CloudWatch 控制台中查看指标](#Viewing-metrics-in-CloudWatch-console)
+ [在 Amazon CLI 中查看指标](#Viewing-metrics-in-the-cli)
+ [DynamoDB 指标与维度](metrics-dimensions.md)
+ [在 DynamoDB 中创建 CloudWatch 警报](Monitoring-metrics-creating-cloudwatch-alarms.md)

## 如何使用 DynamoDB 指标？
<a name="How-do-I-use-DynamoDB-metrics"></a>

DynamoDB 报告的指标提供可通过不同方式分析的信息。下面的列表显示这些指标的一些常见用途。这些是入门建议，并不全面。


**如何使用 DynamoDB 指标？**  

|  我如何？  |  相关指标  | 
| --- | --- | 
|  如何监控表上的 TTTTL 删除率？   |  可以在指定时间段内监控 `TimeToLiveDeletedItemCount`，跟踪表上的 TTL 删除率。有关使用 `TimeToLiveDeletedItemCount` 指标的无服务器应用程序示例，请参阅 [Automatically archive items to S3 using DynamoDB time to live (TTL) with Amazon Lambda and Amazon Data Firehose](https://www.amazonaws.cn/blogs/database/automatically-archive-items-to-s3-using-dynamodb-time-to-live-with-aws-lambda-and-amazon-kinesis-firehose/)。  | 
|  如何确定我的预置吞吐量使用了多少？  |  可以在指定时间段内监控 `ConsumedReadCapacityUnits` 或 `ConsumedWriteCapacityUnits`，跟踪预置吞吐量的使用。  | 
|  如何确定哪些请求超出了表的预置吞吐量配额？  |  `ThrottledRequests`如果请求中的任何事件超过预置吞吐量配额， 将递增 1。要了解限制请求的事件，为表及其索引比较 `ThrottledRequests` 与 `ReadThrottleEvents` 和 `WriteThrottleEvents` 指标。  | 
|  如何确定是否发生了任何系统错误？  |  可以监控 `SystemErrors` 以确定是否有任何请求导致 HTTP 500（服务器错误）代码。通常，此指标应等于零。如果不是，可能需要调查。  | 
|  如何监控表操作的延迟值？  |  可以通过跟踪平均延迟和以百分位数指标表示的中位数延迟（p50）来监控 `SuccessfulRequestLatency`。偶尔的延迟高峰并不需要担忧。但是，如果平均延迟或 p50（中位数）高，则可能存在您必须解决的潜在问题。请参阅[解决 Amazon DynamoDB 中的延迟问题](TroubleshootingLatency.md)了解更多信息。  | 

## 在 CloudWatch 控制台中查看指标
<a name="Viewing-metrics-in-CloudWatch-console"></a>

指标的分组首先依据服务命名空间，然后依据每个命名空间内的各种维度组合。

**在 CloudWatch 控制台中查看指标**

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

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

1. 选择 **DynamoDB** 命名空间。您还可以选择**使用率**命名空间来查看 DynamoDB 使用率指标。有关使用率指标的更多信息，请参阅 [Amazon 使用率指标。](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/CloudWatch-Service-Quota-Integration.html)

1. **浏览**选项卡显示命名空间中的所有指标。

1. （可选）要将指标图表添加到 CloudWatch 控制面板，请依次选择**操作、添加到控制面板**。

## 在 Amazon CLI 中查看指标
<a name="Viewing-metrics-in-the-cli"></a>

要使用 Amazon CLI 获取指标信息，请使用 CloudWatch 命令 `list-metrics`。在以下示例中，您将列出 `AWS/DynamoDB` 命名空间中的所有指标。

```
1.                 aws cloudwatch list-metrics --namespace "Amazon/DynamoDB"
```

若要获取指标统计数据，请使用命令 `get-metric-statistics`。以下命令以 5 分钟为间隔，获取表 `ProductCatalog` 在特定 24 小时时段内的 `ConsumedReadCapacityUnits` 统计数据。

```
aws cloudwatch get-metric-statistics —namespace AWS/DynamoDB \
     —metric-name ConsumedReadCapacityUnits \
     —start-time 2023-11-01T00:00:00Z \
     —end-time 2023-11-02T00:00:00Z \
     —period 360 \
     —statistics Average \
     —dimensions Name=TableName,Value=ProductCatalog
```

示例输出如下：

```
{
    "Datapoints": [
        {
            "Timestamp": "2023-11-01T 09:18:00+00:00", 
            "Average": 20, 
            "Unit": "Count"
        }, 
        {
            "Timestamp": "2023-11-01T 04:36:00+00:00", 
            "Average": 22.5, 
            "Unit": "Count"
        }, 
        {
            "Timestamp": "2023-11-01T 15:12:00+00:00", 
            "Average": 20, 
            "Unit": "Count"
        }, ...
        {
            "Timestamp": "2023-11-01T 17:30:00+00:00", 
            "Average": 25, 
            "Unit": "Count"
        }
    ], 
    "Label": " ConsumedReadCapacityUnits "
}
```