

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

# 使用以下方式监控亚马逊 DocumentDB CloudWatch
<a name="cloud_watch"></a>

Amazon DocumentDB（兼容 MongoDB）与亚马逊集成， CloudWatch 因此您可以收集和分析集群的运行指标。您可以使用 CloudWatch 控制台、Amazon DocumentDB 控制台、 AWS Command Line Interface (AWS CLI) 或 API 来监控这些指标。 CloudWatch

CloudWatch 还允许您设置警报，以便在指标值违反您指定的阈值时收到通知。您甚至可以设置 Amazon Ev CloudWatch ents，以便在发生违规行为时采取纠正措施。有关使用 CloudWatch 和警报的更多信息，请参阅 [Amazon CloudWatch 文档](https://docs.aws.amazon.com/cloudwatch/index.html)。

**Topics**
+ [

## Amazon DocumentDB 指标
](#cloud_watch-metrics_list)
+ [

## 查看 CloudWatch 数据
](#cloud_watch-view_data)
+ [

## Amazon DocumentDB 维度
](#cloud_watch-metrics_dimensions)
+ [

## 监控 Opcounter 指标
](#cloud_watch-monitoring_opcounters)
+ [

## 监控数据库连接
](#cloud_watch-monitoring_connections)

## Amazon DocumentDB 指标
<a name="cloud_watch-metrics_list"></a>

要监控 Amazon DocumentDB 集群和实例的运行状况和性能，您可以在 Amazon DocumentDB 控制台中查看以下指标。

**注意**  
下表中的指标适用于基于实例的集群和弹性集群。

**Topics**
+ [

### 资源利用率指标
](#resource-utilization)
+ [

### 延迟指标
](#latency-metrics)
+ [

### NVMe支持的实例指标
](#nvme-metrics)
+ [

### 操作指标
](#operations-metrics)
+ [

### 吞吐量指标
](#throughput-metrics)
+ [

### 系统指标
](#system-metrics)
+ [

### T3 实例指标
](#t3-instance-metrics)

### 资源利用率指标
<a name="resource-utilization"></a>


| 指标 | 说明 | 
| --- | --- | 
| BackupRetentionPeriodStorageUsed | 在 Amazon DocumentDB 的保留期内，用于支持 point-in-time还原功能的备份存储总量（以字节为单位）。包含在 TotalBackupStorageBilled 指标报告的总数中。针对每个 Amazon DocumentDB 集群单独计算。 | 
| ChangeStreamLogSize | 集群用于存储变更流日志的存储量（以兆字节为单位）。此值是集群总存储量的子集 (VolumeBytesUsed)，将影响集群的成本。有关存储定价信息，请参阅 [ Amazon DocumentDB 产品页面](https://aws.amazon.com//documentdb/pricing)。变更流日志大小取决于集群上发生了多少更改以及变更流日志的保留时间。有关变更流的更多信息，请参阅[将变更流与 Amazon DocumentDB 结合使用](change_streams.md)。 | 
| CPUUtilization | 实例占用的 CPU 百分比。 | 
| DatabaseConnections | 在以 1 分钟频率拍摄的实例上打开的连接（活动和空闲）数。 | 
| DatabaseConnectionsMax | 1 分钟内在实例上打开的最大数据库连接（活动和空闲）数。 | 
| DatabaseConnectionsLimit | 在任何给定时间，实例上允许的最大并发数据库连接（活动和空闲）数。 | 
| DatabaseCursors | 在以 1 分钟频率拍摄的实例上打开的光标数。 | 
| DatabaseCursorsMax | 1 分钟内实例上打开的最大光标数。 | 
| DatabaseCursorsLimit | 在任何给定时间，实例上允许的最大光标数。 | 
| DatabaseCursorsTimedOut | 在 1 分钟内超时的光标数。 | 
| FreeableMemory | 随机存取内存的可用量 (以字节为单位)。 | 
| FreeLocalStorage | 此指标报告每个实例中可用于临时表和日志的存储量。此值取决于实例类。您可通过为实例选择较大的实例类来增加对实例可用的存储空间量。（这不适用于 DocumentDB 无服务器。）  | 
| LowMemThrottleQueueDepth | 由于可用内存不足而受到限制的请求的队列深度，频率为 1 分钟。  | 
| LowMemThrottleMaxQueueDepth | 1 分钟内由于可用内存不足而受到限制的请求的最大队列深度。  | 
| LowMemNumOperationsThrottled | 1 分钟内由于可用内存不足而受到限制的请求数量。  | 
| SnapshotStorageUsed | 给定 Amazon DocumentDB 集群的所有快照在其备份保留时段外消耗的备份存储总量（以字节为单位）。包含在 TotalBackupStorageBilled 指标报告的总数中。针对每个 Amazon DocumentDB 集群单独计算。 | 
| SwapUsage | 实例上使用的交换空间的大小。 | 
| TotalBackupStorageBilled | 为给定 Amazon DocumentDB 集群计费时所针对的备份存储总量（以字节为单位）。包含由 BackupRetentionPeriodStorageUsed 和 SnapshotStorageUsed 指标度量的备份存储。针对每个 Amazon DocumentDB 集群单独计算。 | 
| TransactionsOpen | 在以 1 分钟频率拍摄的实例上打开的事务数量。 | 
| TransactionsOpenMax | 1 分钟内在实例上打开的最大事务数量。 | 
| TransactionsOpenLimit | 在任何给定时间，实例上允许的最大并发事务数。 | 
| VolumeBytesUsed | 您的集群使用的存储量（以字节为单位）。此值将影响集群的成本。有关定价信息，请参阅 [Amazon DocumentDB 定价页面](https://aws.amazon.com//documentdb/pricing)。 | 

### 延迟指标
<a name="latency-metrics"></a>


| 指标 | 说明 | 
| --- | --- | 
| DBClusterReplicaLagMaximum | 数据库集群中主实例和每个 Amazon DocumentDB 实例之间的最大滞后量（以毫秒为单位）。 | 
| DBClusterReplicaLagMinimum | 集群中主实例和每个副本实例之间的最小滞后量（以毫秒为单位）。 | 
| DBInstanceReplicaLag | 在从主实例向副本实例复制更新时的滞后总量（以毫秒为单位）。 | 
| ReadLatency | 每次磁盘 I/O 操作所花费的平均时间。 | 
| WriteLatency | 每次磁盘操作所用的平均时间，以毫秒为单位。 I/O  | 

### NVMe支持的实例指标
<a name="nvme-metrics"></a>


| 指标 | 说明 | 
| --- | --- | 
| NVMeStorageCacheHitRatio | 分层缓存所提供请求的百分比。 | 
| FreeNVMeStorage | 可用的临时存储 NVMe 量。 | 
| ReadIOPSNVMeStorage | 对临时 NVMe 存储进行磁盘读取 I/O 操作的平均次数。 | 
| ReadLatencyNVMeStorage | 临时 NVMe 存储每次磁盘读取 I/O 操作所花费的平均时间。 | 
| ReadThroughputNVMeStorage | 临时 NVMe 存储每秒从磁盘读取的平均字节数。 | 
| WriteIOPSNVMeStorage | 对临时 NVMe 存储进行磁盘写入 I/O 操作的平均次数。 | 
| WriteLatencyNVMeStorage | 临时 NVMe 存储每次磁盘写入 I/O 操作所花费的平均时间。 | 
| WriteThroughputNVMeStorage | 临时 NVMe 存储每秒写入磁盘的平均字节数。 | 

### 操作指标
<a name="operations-metrics"></a>


| 指标 | 说明 | 
| --- | --- | 
| DocumentsDeleted | 1 分钟内删除的文档数量。 | 
| DocumentsInserted | 1 分钟内插入的文档数量。 | 
| DocumentsReturned | 1 分钟内返回的文档数量。 | 
| DocumentsUpdated | 1 分钟内更新的文档数量。 | 
| OpcountersCommand | 1 分钟内发出的命令数。 | 
| OpcountersDelete | 1 分钟内发出的删除操作数。 | 
| OpcountersGetmore | 1 分钟内发出的 getmore 数。 | 
| OpcountersInsert | 1 分钟内发出的插入操作数。 | 
| OpcountersQuery | 1 分钟内发出的查询数。 | 
| OpcountersUpdate | 1 分钟内发出的更新操作数。 | 
| TransactionsStarted | 1 分钟内在实例上启动的事务数量。 | 
| TransactionsCommitted | 1 分钟内在实例上提交的事务数量。 | 
| TransactionsAborted | 1 分钟内在实例上中止的事务数量。 | 
| TTLDeletedDocuments | 在 1 分钟内被删除 TTLMonitor 的文档数。 | 

### 吞吐量指标
<a name="throughput-metrics"></a>


| 指标 | 说明 | 
| --- | --- | 
| NetworkReceiveThroughput | 集群中每个实例从客户端接收的网络吞吐量（以每秒字节数为单位）。此吞吐量不包括集群中的实例与集群卷之间的网络流量。 | 
| NetworkThroughput | Amazon DocumentDB 集群中每个实例从客户端接收和发送到客户端的网络吞吐量（以每秒字节数为单位）。此吞吐量不包括集群中的实例与集群卷之间的网络流量。 | 
| NetworkTransmitThroughput | 集群中每个实例发送到客户端的网络吞吐量（以每秒字节数为单位）。此吞吐量不包括集群中的实例与集群卷之间的网络流量。 | 
| ReadIOPS | 每秒磁盘读取 I/O 操作的平均次数。Amazon DocumentDB 每分钟分别报告一次读取和写入 IOPS。 | 
| ReadThroughput | 每秒从磁盘读取的平均字节数。 | 
| StorageNetworkReceiveThroughput | 集群中每个实例从 Amazon DocumentDB 集群存储卷接收的网络吞吐量（以每秒字节数为单位）。 | 
| StorageNetworkTransmitThroughput | 集群中每个实例发送到 Amazon DocumentDB 集群存储卷的网络吞吐量（以每秒字节数为单位）。 | 
| StorageNetworkThroughput | Amazon DocumentDB 集群中每个实例接收自和发送到 Amazon DocumentDB 集群存储卷的网络吞吐量（以每秒字节数为单位）。 | 
| VolumeReadIOPs |  集群卷的平均计费读取 I/O 操作数，每隔 5 分钟报告一次。计费读取操作数是在集群卷级别计算的，由集群中的所有实例聚合而来，然后每隔 5 分钟报告一次。此值是通过采用 5 分钟以上的读取操作数指标的值计算得来的。您可通过采用计费读取操作数指标的值并除以 300 秒来确定每秒的计费读取操作数。 例如，如果 `VolumeReadIOPs` 返回 13,686，则每秒的计费读取操作数为 45 (13,686 / 300 = 45.62)。 您累积请求不在缓冲区缓存中因而必须从存储加载的数据库页的查询的计费读取操作数。您可能看到计费读取操作数出现峰值，因为查询结果是从存储中读取然后加载到缓冲区缓存中的。  | 
| VolumeWriteIOPs |  集群卷的平均计费写入 I/O 操作数，每隔 5 分钟报告一次。计费写入操作数是在集群卷级别计算的，由集群中的所有实例聚合而来，然后每隔 5 分钟报告一次。此值是通过采用 5 分钟以上的写入操作数指标的值计算得来的。您可通过采用计费写入操作数指标的值并除以 300 秒来确定每秒的计费写入操作数。 例如，如果 `VolumeWriteIOPs` 返回 13686，则每秒的计费写入操作数为 45 (13686 / 300 = 45.62)。 请注意，`VolumeReadIOPs`和`VolumeWriteIOPs`指标是由 DocumentDB 存储层计算的，其中包括主实例和副本实例 IOs 执行的指标。数据每 20-30 分钟聚合一次，然后每隔 5 分钟报告一次，因此该时间段内该指标的数据点相同。如果您正在寻找与 1 分钟间隔内的插入操作相关联的指标，则可以使用实例级别 WriteIOPs 指标。该指标可在您的 Amazon DocumentDB 主实例的“monitoring”（监控）选项卡中找到。  | 
| WriteIOPS | 每秒磁盘写入 I/O 操作的平均次数。在集群级别使用时，WriteIOPs 会对集群中的所有实例进行评估。每分钟分别报告一次读取和写入 IOPS。 | 
| WriteThroughput | 每秒写入磁盘的平均字节数。 | 

### 系统指标
<a name="system-metrics"></a>


| 指标 | 说明 | 
| --- | --- | 
| AvailableMVCCIds | 一个计数器，显示在达到零之前剩余的可用写入操作数。当此计数器达到零时，您的集群将进入只读模式，直到 IDs 被回收和回收。计数器会随着每次写入操作而减少，并随着垃圾收集回收旧的 M IDs VCC 而增加。 | 
| BufferCacheHitRatio | 缓冲区缓存提供的请求的百分比。 | 
| DiskQueueDepth | 等待写入磁盘或从磁盘读取的 I/O 操作数。 | 
| EngineUptime | 实例已运行的时间长度（以秒为单位）。 | 
| IndexBufferCacheHitRatio | 缓冲区缓存提供的指数请求的百分比。删除索引、集合或数据库后，您可能会立即看到该指标的峰值超过 100%。60 秒后自动更正。此限制将在未来的补丁更新中得到修复。 | 
| LongestActiveGCRuntime | 最长活动垃圾回收过程的持续时间（以秒为单位）。每分钟更新一次，仅跟踪活动操作，不包括在一分钟时段内完成的进程。 | 

### T3 实例指标
<a name="t3-instance-metrics"></a>


| 指标 | 说明 | 
| --- | --- | 
| CPUCreditUsage | 在测量周期内花费的 CPU 积分数。 | 
| CPUCreditBalance | 实例产生的 CPU 积分数量。在 CPU 突增以及 CPU 积分的花费速度比获得速度快时，该余额将用完。 | 
| CPUSurplusCreditBalance | 当余额值为零时，为维持 CPU 性能而花费的剩 CPUCredit余 CPU 积分数。 | 
| CPUSurplusCreditsCharged | 超过可在 24 小时内获得的 CPU 积分数上限的超额 CPU 积分数，因而会产生额外的费用。有关更多信息，请参阅 [ 监控您的 CPU 积分](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-monitoring-cpu-credits.html)。 | 

## 查看 CloudWatch 数据
<a name="cloud_watch-view_data"></a>

您可以使用 CloudWatch 控制台、亚马逊 DocumentDB 控制台 AWS Command Line Interface (AWS CLI) 或 API 查看亚马逊 CloudWatch 数据。 CloudWatch 

------
#### [ Using the AWS 管理控制台 ]

要使用 Amazon DocumentDB 管理控制台查看 CloudWatch 指标，请完成以下步骤。

1. [登录 AWS 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/docdb)

1. 在导航窗格中，选择**集群**。
**提示**  
如果您在屏幕左侧没有看到导航窗格，请在页面左上角选择菜单图标 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

1. 在集群导航框中，您将看到“**集群标识符**”列。您的实例列于集群下，类似于以下屏幕截图。  
![\[“集群”表，显示了如何在集群下嵌套实例。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/choose-clusters.png)

1. 从实例列表中选择要获取其指标的实例的名称。

1. 在生成的实例摘要页面中，选择 **Monitoring**（监控）选项卡，查看您的 Amazon DocumentDB 实例指标的图形表示。由于必须为每个指标生成图表，因此可能需要几分钟才能填充**CloudWatch**图表。

   下图显示了 Amazon DocumentDB 控制台中两个 CloudWatch 指标的图形表示，`WriteIOPS`以及。`ReadIOPS`  
![\[两个折线图，分别代表亚马逊 DocumentDB 控制台中的 WriteIOps 和 CloudWatch readiOps 指标。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/cw-metrics-con.png)

------
#### [ Using the CloudWatch Management Console ]

要使用 CloudWatch 管理控制台查看 CloudWatch 指标，请完成以下步骤。

1. 登录并打开亚马逊文档数据库控制台，网址为。 AWS 管理控制台[https://console.aws.amazon.com/cloudwatch](https://console.aws.amazon.com/cloudwatch)

1. 在导航窗格中，选择**指标**。然后，从服务名称列表中选择 **DocDB**。

1. 选择指标维度（例如 **集群指标**）。

1. **All metrics** 选项卡显示 **DocDB** 中该维度的所有指标。

   1. 要对表进行排序，请使用列标题。

   1. 要为指标绘制图表，请选中该指标旁的复选框。要选择所有指标，请选中表的标题行中的复选框。

   1. 要按指标筛选，请将鼠标悬停在指标名称上，然后选择指标名称旁边的下拉箭头。然后，选择 **Add to search**（增加到搜索），如下图所示。  
![\[所有指标选项卡列出了各项指标，并显示指标名称的下拉列表。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/cloudwatch-filter-metrics.png)

------
#### [ Using the AWS CLI ]

要查看 Amazon DocumentDB CloudWatch 的数据，请使用带有以下参数的 CloudWatch `get-metric-statistics`操作。

**参数**
+ **--namespace**：必需。需要其 CloudWatch 指标的服务命名空间。对于 Amazon DocumentDB 来说，必须为 `AWS/DocDB`。
+ **--metric-name**：必需。需要其数据的指标的名称。
+ **--start-time**：必需。用于确定要返回的第一个数据点的时间戳。

   包含指定的值；结果包括具有指定时间戳的数据点。时间戳必须采用 ISO 8601 UTC 格式（例如，2016-10-03T23:00:00Z）。
+ **--end-time**：必需。用于确定要返回的最后一个数据点的时间戳。

  包含指定的值；结果包括具有指定时间戳的数据点。时间戳必须采用 ISO 8601 UTC 格式（例如，2016-10-03T23:00:00Z）。
+ **--period**：必需。返回的数据点的粒度（以秒为单位）。对于具有常规精度的指标，期间可以短到一分钟（60 秒），并且必须为 60 的倍数。对于以小于一分钟的间隔收集的高精度指标，期间可以是 1、5、10、30、60 或 60 的任意倍数。
+ **--dimensions**— 可选。如果该指标包含多个维度，则必须为每个维度包含一个值。 CloudWatch 将每个唯一的维度组合视为一个单独的指标。如果未发布某个特定的维度组合，则无法检索该组合的统计数据。您必须指定创建指标时使用的同一维度。
+ **--statistics**：可选。百分位数之外的指标统计数据。对于百分位数统计数据，请使用 `ExtendedStatistics`。调用 `GetMetricStatistics` 时，必须指定 `Statistics` 或 `ExtendedStatistics`，但不能同时指定两者。

**允许的值：**
  + `SampleCount`
  + `Average`
  + `Sum`
  + `Minimum`
  + `Maximum`
+ **--extended-statistics**：可选。`percentile` 统计数据。指定介于 p0.0 到 p100 之间的值。调用 `GetMetricStatistics` 时，必须指定 `Statistics` 或 `ExtendedStatistics`，但不能同时指定两者。
+ **--unit**：可选。给定指标的单位。可以用多个单位报告指标。如果不提供单位，将返回所有单位。如果您仅指定指标不报告的单位，调用的结果将为空。

**可能的值：**
  + `Seconds`
  + `Microseconds`
  + `Milliseconds`
  + `Bytes`
  + `Kilobytes`
  + `Megabytes`
  + `Gigabytes`
  + `Terabytes`
  + `Bits`
  + `Kilobytes`
  + `Megabits`
  + `Gigabits`
  + `Terabits`
  + `Percent`
  + `Count`
  + `Bytes/Second`
  + `Kilobytes/Second`
  + `Megabytes/Second`
  + `Gigabytes/Second`
  + `Terabytes/Second`
  + `Bits/Second`
  + `Kilobits/Second`
  + `Megabits/Second`
  + `Gigabits/Second`
  + `Terabits/Second`
  + `Count/Second`
  + `None`

**Example**  
以下示例查找 2 小时时段的最大 `CPUUtilization`，每隔 60 秒采样一次。  
对于 Linux、macOS 或 Unix：  

```
aws cloudwatch get-metric-statistics \
       --namespace AWS/DocDB \
       --dimensions \
           Name=DBInstanceIdentifier,Value=docdb-2019-01-09-23-55-38 \
       --metric-name CPUUtilization \
       --start-time 2019-02-11T05:00:00Z \
       --end-time 2019-02-11T07:00:00Z \
       --period 60 \
       --statistics Maximum
```
对于 Windows：  

```
aws cloudwatch get-metric-statistics ^
       --namespace AWS/DocDB ^
       --dimensions ^
           Name=DBInstanceIdentifier,Value=docdb-2019-01-09-23-55-38 ^
       --metric-name CPUUtilization ^
       --start-time 2019-02-11T05:00:00Z ^
       --end-time 2019-02-11T07:00:00Z ^
       --period 60 ^
       --statistics Maximum
```
此操作的输出类似于以下内容：  

```
{
       "Label": "CPUUtilization",
       "Datapoints": [
           {
               "Unit": "Percent",
               "Maximum": 4.49152542374361,
               "Timestamp": "2019-02-11T05:51:00Z"
           },
           {
               "Unit": "Percent",
               "Maximum": 4.25000000000485,
               "Timestamp": "2019-02-11T06:44:00Z"
           },
           
           ********* some output omitted for brevity *********
           
           {
               "Unit": "Percent",
               "Maximum": 4.33333333331878,
               "Timestamp": "2019-02-11T06:07:00Z"
           }
       ]
   }
```

------

## Amazon DocumentDB 维度
<a name="cloud_watch-metrics_dimensions"></a>

Amazon DocumentDB 的指标由账户或操作的值来限定。您可以使用 CloudWatch 控制台检索按下表中任意维度筛选的 Amazon DocumentDB 数据。


| 维度 | 说明 | 
| --- | --- | 
| DBClusterIdentifier | 筛选您为特定 Amazon DocumentDB 集群请求的数据。 | 
| DBClusterIdentifier, Role | 筛选您为特定 Amazon DocumentDB 集群请求的数据，并按实例角色 (WRITER/READER) 聚合指标。例如，您可以聚合属于某个群集的所有 READER 实例的指标。 | 
| DBInstanceIdentifier | 筛选您为特定数据库实例请求的数据。 | 

## 监控 Opcounter 指标
<a name="cloud_watch-monitoring_opcounters"></a>

对于空闲集群，Opcounter 指标具有非零值（通常约为 50）。这是因为 Amazon DocumentDB 会定期执行运行状况检查、内部操作和指标收集任务。

## 监控数据库连接
<a name="cloud_watch-monitoring_connections"></a>

当你使用数据库引擎命令查看连接数时`db.runCommand( { serverStatus: 1 })`，你看到的连接数可能比你看到的`DatabaseConnections`多达 10 个 CloudWatch。发生这种情况的原因是，Amazon DocumentDB 执行定期运行状况检查和指标收集任务，而这些任务不记入 `DatabaseConnections`。`DatabaseConnections` 仅显示客户启动的连接数。