

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 CloudWatch 監控 Amazon DocumentDB
<a name="cloud_watch"></a>

Amazon DocumentDB （具有 MongoDB 相容性） 與 Amazon CloudWatch 整合，因此您可以收集和分析叢集的操作指標。您可以使用 CloudWatch 主控台、Amazon DocumentDB 主控台、 AWS Command Line Interface (AWS CLI) 或 CloudWatch API 來監控這些指標。

CloudWatch 也可讓您設定警示，以便在指標值超過指定閾值時收到通知。您甚至可以設定 Amazon CloudWatch Events 在發生違規時採取修正動作。如需使用 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)
+ [監控交易指標](#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>


| 指標 | Description | 
| --- | --- | 
| BackupRetentionPeriodStorageUsed | 用於支援 point-in-time還原功能的備份儲存總量，以位元組為單位。 Amazon DocumentDB 包含在 TotalBackupStorageBilled 指標報告的總數中。針對每個 Amazon DocumentDB 叢集單獨計算。 | 
| ChangeStreamLogSize | 您的叢集用於存放變更串流日誌的儲存容量 (MB)。此數值是叢集的儲存總量子集 (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 Serverless。)  | 
| 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>


| 指標 | Description | 
| --- | --- | 
| DBClusterReplicaLagMaximum | 主要執行個體與叢集中每個 Amazon DocumentDB 執行個體之間的延遲量上限，以毫秒為單位。 | 
| DBClusterReplicaLagMinimum | 主要執行個體與叢集中每個複寫執行個體之間的最小延遲量 (單位毫秒)。 | 
| DBInstanceReplicaLag | 從主要執行個體複寫更新至複寫執行個體時的延遲量 (單位毫秒)。 | 
| ReadLatency | 平均每次磁碟輸入/輸出操作耗用的時間量。 | 
| WriteLatency | 平均每次磁碟 I/O 操作耗用的時間量 (單位毫秒)。 | 

### NVMe 支援的執行個體指標
<a name="nvme-metrics"></a>


| 指標 | Description | 
| --- | --- | 
| 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>


| 指標 | Description | 
| --- | --- | 
| DocumentsDeleted | 1 分鐘內已刪除的文件數量。 | 
| DocumentsInserted | 1 分鐘內插入的文件數量。 | 
| DocumentsReturned | 1 分鐘內傳回的文件數量。 | 
| DocumentsUpdated | 1 分鐘內更新的文件數量。 | 
| OpcountersCommand | 在 1 分鐘內發出的命令數量。 | 
| OpcountersDelete | 1 分鐘內發出的刪除操作數目。 | 
| OpcountersGetmore | 在 1 分鐘內發行的 getmores 數量。 | 
| OpcountersInsert | 在 1 分鐘內發出的插入操作數量。 | 
| OpcountersQuery | 在 1 分鐘內發出的查詢數量。 | 
| OpcountersUpdate | 在 1 分鐘內發出的更新操作數量。 | 
| TransactionsStarted | 在 1 分鐘內在執行個體上啟動的交易數量。 | 
| TransactionsCommitted | 在 1 分鐘內對執行個體遞交的交易數量。 | 
| TransactionsAborted | 執行個體在 1 分鐘內中止的交易數量。 | 
| TTLDeletedDocuments | TTLMonitor 在 1 分鐘內刪除的文件數量。 | 

### 輸送量指標
<a name="throughput-metrics"></a>


| 指標 | Description | 
| --- | --- | 
| NetworkReceiveThroughput | 叢集中每個執行個體從用戶端接收到的網路傳輸量 (以位元組/秒為單位)。此傳輸量不包含叢集中的執行個體與叢集磁碟區之間的網路流量。 | 
| NetworkThroughput | Amazon DocumentDB 叢集中每個執行個體從用戶端接收和傳輸的網路輸送量，以每秒位元組為單位。此傳輸量不包含叢集中的執行個體與叢集磁碟區之間的網路流量。 | 
| NetworkTransmitThroughput | 叢集中每個執行個體傳送至用戶端的網路傳輸量 (以位元組/秒為單位)。此傳輸量不包含叢集中的執行個體與叢集磁碟區之間的網路流量。 | 
| ReadIOPS | 磁碟讀取輸入/輸出操作的每秒平均次數。Amazon DocumentDB 會以 1 分鐘的間隔分別報告讀取和寫入 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`傳回 13，686，則每秒計費寫入操作為 45 (13，686 / 300 = 45.62)。 請注意， `VolumeReadIOPs`和 `VolumeWriteIOPs`指標由 DocumentDB 儲存層計算，並包含主要執行個體和複本執行個體執行的 IOs。資料每 20-30 分鐘彙總一次，然後每隔 5 分鐘報告一次，因此在期間內會發出指標的相同資料點。如果您要在 1 分鐘內尋找與插入操作相關聯的指標，您可以使用執行個體層級 WriteIOPS 指標。指標可在 Amazon DocumentDB 主要執行個體的監控索引標籤中使用。  | 
| WriteIOPS | 磁碟寫入輸入/輸出操作的每秒平均次數。在叢集層級上使用時， WriteIOPs會跨叢集中的所有執行個體進行評估。每隔 1 分鐘分別回報讀取與寫入 IOPS。 | 
| WriteThroughput | 平均每秒寫入磁碟的位元組數目。 | 

### 系統指標
<a name="system-metrics"></a>


| 指標 | Description | 
| --- | --- | 
| AvailableMVCCIds | 計數器，顯示達到零之前可用的剩餘寫入操作數量。當此計數器達到零時，您的叢集會進入唯讀模式IDs直到 ID 回收和回收為止。計數器會隨著每次寫入操作而減少，並隨著垃圾回收回收舊的 MVCC IDs 而增加。 | 
| BufferCacheHitRatio | 由緩衝區快取提供服務的請求的百分比。 | 
| DiskQueueDepth | 等待寫入磁碟或從磁碟讀取的 I/O 操作數目。 | 
| EngineUptime | 執行個體已執行的時間量 (單位秒)。 | 
| IndexBufferCacheHitRatio | 緩衝區快取提供的索引請求百分比。在捨棄索引、集合或資料庫之後，您可能會看到指標的峰值大於 100%。這將在 60 秒後自動更正。此限制將在未來的修補程式更新中修正。 | 
| LongestActiveGCRuntime | 最長作用中垃圾回收程序的持續時間，以秒為單位。每分鐘更新一次，並僅追蹤作用中的操作，不包括在一分鐘時段內完成的程序。 | 

### T3 執行個體指標
<a name="t3-instance-metrics"></a>


| 指標 | Description | 
| --- | --- | 
| CPUCreditUsage | 測量期間花費的 CPU 點數。 | 
| CPUCreditBalance | 執行個體累積的 CPU 點數。當 CPU 效能瞬間突增，以及 CPU 額度用掉的速度比獲得的快時，此額度餘額會用完。 | 
| CPUSurplusCreditBalance | 當 CPUCreditBalance 值為零時，用於維持 CPU 效能的剩餘 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>

您可以使用 Amazon CloudWatch Amazon DocumentDB CloudWatch 資料。 CloudWatch AWS Command Line Interface AWS CLI

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

若要使用 Amazon DocumentDB 管理主控台檢視 CloudWatch 指標，請完成下列步驟。

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb) 開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇**叢集**。
**提示**  
如果畫面左側沒有出現導覽窗格，請選擇頁面左上角的功能表圖示 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

1. 在叢集導覽方塊中，您會看到**叢集識別符**欄。您的執行個體會列在叢集下，類似於下面的螢幕擷取畫面。  
![\[叢集資料表顯示如何在叢集下巢狀化執行個體。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/choose-clusters.png)

1. 從執行個體清單中，選擇您想要指標的執行個體名稱。

1. 在產生的執行個體摘要頁面中，選擇**監控**索引標籤以檢視 Amazon DocumentDB 執行個體指標的圖形表示。由於每個指標都必須產生圖形，因此可能需要幾分鐘的時間 **CloudWatch (CloudWatch)** 圖形才會填入。

   下圖顯示 Amazon DocumentDB 主控台中兩個 CloudWatch 指標的圖形表示法，`WriteIOPS`以及 `ReadIOPS`。  
![\[兩個折線圖，代表 Amazon DocumentDB 主控台中的 WriteIOPS 和 ReadIOPS CloudWatch 指標。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/cw-metrics-con.png)

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

若要使用 CloudWatch 管理主控台檢視 CloudWatch 指標，請完成下列步驟。

1. 登入 AWS 管理主控台，並在 開啟 Amazon DocumentDB 主控台[https://console.aws.amazon.com/cloudwatch](https://console.aws.amazon.com/cloudwatch)。

1. 在導覽窗格中，選擇 **指標**。然後，從服務名稱清單中，選擇 **DocDB**。

1. 選擇指標維度 （例如，**叢集指標**)。

1. **所有指標**索引標籤會顯示 **DocDB** 中該維度的所有指標。

   1. 若要將資料表排序，請使用直欄標題。

   1. 若要將指標圖形化，請勾選指標旁的核取方塊。若要選擇所有指標，請勾選表格標題列中的核取方塊。

   1. 若要依指標篩選，請將滑鼠游標暫留在指標名稱上，然後選取指標名稱旁的下拉箭頭。然後，選擇**新增至搜尋**，如下圖所示。  
![\[列出指標的所有指標索引標籤，並顯示指標名稱的下拉式清單。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/cloudwatch-filter-metrics.png)

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

若要檢視 Amazon DocumentDB 的 CloudWatch 資料，請使用 CloudWatch `get-metric-statistics`操作搭配下列參數。

**Parameters**
+ **--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** — 選用。特定指標的單位。指標可能採用多種單位回報。若未提供單位，則會導致傳回所有單位的結果。如果您唯一指定的單位是指標不會報告的單位，則呼叫結果會是 null。

**可能的值如下：**
  + `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 資料。


| 維度 | Description | 
| --- | --- | 
| DBClusterIdentifier | 篩選您為特定 Amazon DocumentDB 叢集請求的資料。 | 
| DBClusterIdentifier, Role | 篩選您為特定 Amazon DocumentDB 叢集請求的資料，依執行個體角色 (WRITER/READER) 彙總指標。例如，您可以為屬於某個叢集的所有讀取者執行個體彙總指標。 | 
| DBInstanceIdentifier | 篩選您對特定資料庫執行個體請求的資料。 | 

## 監控交易指標
<a name="cloud_watch-monitoring_opcounters"></a>

對閒置叢集的反向指標具有非零值 （通常為 \$150)。這是因為 Amazon DocumentDB 會執行定期運作狀態檢查、內部操作和指標收集任務。

## 監控資料庫連線
<a name="cloud_watch-monitoring_connections"></a>

當您使用 等資料庫引擎命令來檢視連線數時`db.runCommand( { serverStatus: 1 })`，您最多可能會看到比`DatabaseConnections`透過 CloudWatch 在 中看到的連線多 10 個。這是因為 Amazon DocumentDB 會執行定期運作狀態檢查，以及未在 中說明的指標收集任務`DatabaseConnections`。 僅`DatabaseConnections`代表客戶起始的連線。