

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

# 監控 Amazon DocumentDB 無伺服器
<a name="docdb-serverless-monitoring"></a>

若要進一步了解 Amazon DocumentDB 中的監控，請參閱 [監控 Amazon DocumentDB](monitoring_docdb.md)。

**Topics**
+ [記憶體不足：不相容參數狀態](#w2aac43c27b7)
+ [DocumentDB Serverless 的 Amazon CloudWatch 指標](#w2aac43c27b9)
+ [使用 Performance Insights 監控 DocumentDB 無伺服器效能](#w2aac43c27c11)

## 記憶體不足：不相容參數狀態
<a name="w2aac43c27b7"></a>

如果其中一個無伺服器執行個體持續達到容量上限，Amazon DocumentDB 會將執行個體設定為不相容參數的狀態，以指出此條件。如需詳細資訊，請參閱[避免記憶體不足錯誤](docdb-serverless-scaling-config.md#docdb-serverless-scaling-mem-errors)。

## DocumentDB Serverless 的 Amazon CloudWatch 指標
<a name="w2aac43c27b9"></a>

若要進一步了解如何搭配 Amazon DocumentDB 使用 CloudWatch，請參閱 [使用 CloudWatch 監控 Amazon DocumentDB](cloud_watch.md)。

您可以在 CloudWatch 中檢視無伺服器執行個體，以使用 `ServerlessDatabaseCapacity` 指標監控每個執行個體耗用的容量。您也可以監控所有標準 DocumentDB CloudWatch 指標，例如 `DatabaseConnections`和 查詢。如需您可以為 Amazon DocumentDB 監控的 CloudWatch 指標完整清單，請參閱 [使用 CloudWatch 監控 Amazon DocumentDB](cloud_watch.md)。下列 CloudWatch 執行個體層級指標對於監控您了解 DocumentDB 無伺服器執行個體如何向上和向下擴展非常重要。所有這些指標每秒計算一次。如此一來，您就可以監控無伺服器執行個體的目前狀態。您可以設定警示，以便在任何無伺服器執行個體接近容量相關指標的閾值時通知您。您可決定最小和最大容量設定是否合適，或者是否需要進行調整。您可決定將精力集中於最佳化您資料庫效率之處。
+ **`ServerlessDatabaseCapacity`** — 做為執行個體層級指標，它會報告目前執行個體容量所代表的 DCUs 數量。做為叢集層級指標，代表叢集中所有 DocumentDB 無伺服器執行個體`ServerlessDatabaseCapacity`的值平均值。
+ **`DCUUtilization.`** — 此指標是 DocumentDB 無伺服器的新指標。此值以百分比表示。其計算方式為`ServerlessDatabaseCapacity`指標值除以叢集的最大 DCU 值。請考慮下列指導方針來解譯此指標並採取行動：
  + 如果此指標接近 的值`100.0`，則執行個體已盡可能地向上擴展。考慮增加叢集的最大 DCU 設定。如此一來，寫入器和讀取器執行個體都可以擴展到更高的容量。
  + 假設唯讀工作負載會導致讀取器執行個體接近 `DCUUtilization`的 `100.0`，而寫入器執行個體並未接近其最大容量。在此情況下，請考慮將其他讀取器執行個體新增至叢集。如此一來，您可以將工作負載的唯讀部分分散到更多執行個體，以減少每個讀取器執行個體的負載。
  + 假設您正在執行生產應用程式，其中效能和可擴展性是主要考慮因素。在這種情況下，您可以將叢集的最大 DCU 值設定為高數字。您的目標是讓`DCUUtilization`指標一律低於 100.0。使用高最大 DCU 值，您可以確信有足夠的空間，以防資料庫活動發生意外尖峰。您僅需為實際使用的資料庫容量付費。
+ **`CPUUtilization`** — 此指標的解譯方式 DocumentDB 與佈建執行個體中的解譯方式不同。對於 DocumentDB 無伺服器，此值是以目前使用的 CPU 數量計算的百分比，除以叢集最大 DCU 值下可用的 CPU 容量。Amazon DocumentDB 會自動監控此值，並在執行個體持續使用高比例的 CPU 容量時擴展無伺服器執行個體。

  如果此指標接近 的值`100.0`，則執行個體已達到其 CPU 容量上限。考慮增加叢集的最大 DCU 設定。如果此指標接近讀取器執行個體`100.0`上的 值，請考慮將其他讀取器執行個體新增至叢集。如此一來，您可以將工作負載的唯讀部分分散到更多執行個體，以減少每個讀取器執行個體的負載。
+ **`FreeableMemory`** — 此值代表 DocumentDB 無伺服器執行個體擴展至其最大容量時可用的未使用記憶體數量。對於目前容量低於最大容量的每個 DCU，此值會增加約 2 GiB。因此，此指標在盡可能地縱向擴展執行個體之前不會接近零。

  如果此指標接近零的值，則執行個體已盡可能向上擴展，並接近其可用記憶體的限制。考慮增加叢集的最大 DCU 設定。如果此指標在讀取器執行個體上接近零的值，請考慮將其他讀取器執行個體新增至叢集。如此一來，工作負載的唯讀部分就可以分散到更多執行個體，減少每個讀取器執行個體的記憶體用量。
+ **`TempStorageIops`** — 在連接至執行個體的本機儲存上完成的 IOPS 數量。其包括讀取和寫入的 IOPS。此指標表示計數，且每秒測量一次。這是 DocumentDB Serverless 的新指標。如需詳細資訊，請參閱[使用 CloudWatch 監控 Amazon DocumentDB](cloud_watch.md)。
+ **`TempStorageThroughput`** — 與執行個體相關聯的本機儲存體往返傳輸的資料量。此指標表示位元組，且每秒測量一次。這是 DocumentDB Serverless 的新指標。如需詳細資訊，請參閱[使用 CloudWatch 監控 Amazon DocumentDB](cloud_watch.md)。

一般而言，大多數的 DocumentDB 無伺服器執行個體擴展都是由記憶體用量和 CPU 活動造成。`TempStorageIops` 和 `TempStorageThroughput`指標可協助您診斷極少數情況下，執行個體與本機儲存裝置之間傳輸的網路活動會導致意外容量增加。如要監控其他網路活動，您可使用以下現有指標：
+ `NetworkReceiveThroughput`
+ `NetworkThroughput`
+ `NetworkTransmitThroughput`
+ `StorageNetworkReceiveThroughput`
+ `StorageNetworkThroughput`
+ `StorageNetworkTransmitThroughput`

### DocumentDB 無伺服器 CloudWatch 指標如何套用至您的 AWS 帳單
<a name="w2aac43c27b9c13"></a>

 AWS 帳單上的 DocumentDB 無伺服器費用是根據您可以監控的相同`ServerlessDatabaseCapacity`指標計算。如果您僅在一小時中使用 DocumentDB 無伺服器容量，則計費機制可能與此指標的計算 CloudWatch 平均值不同。若系統問題造成 CloudWatch 指標在短時間內無法使用，其亦可能會有所不同。因此，與從`ServerlessDatabaseCapacity`平均值自行計算數字時相比，您可能會在帳單上看到略有不同的 DCU 小時值。

### DocumentDB 無伺服器指標的 Amazon CloudWatch CLI 命令範例
<a name="w2aac43c27b9c15"></a>

下列 AWS CLI 範例示範如何監控與 DocumentDB Serverless 相關的最重要 CloudWatch 指標。在每個案例中，將 `--dimensions` 參數的`Value=`字串取代為您自己的 DocumentDB 無伺服器執行個體的識別符。

下列 Linux 範例顯示執行個體的最小、最大和平均容量值，在一小時內每 10 分鐘測量一次。Linux 日期命令會指定相對於目前日期和時間的開始和結束時間。`--query` 參數中的 `sort_by` 函數依據 `Timestamp` 欄位依時間順序對結果進行排序。

```
aws cloudwatch get-metric-statistics \
    --metric-name "ServerlessDatabaseCapacity" \
    --start-time "$(date -d '1 hour ago')" \
    --end-time "$(date -d 'now')" \
    --period 600 \
    --namespace "AWS/DocDB" \
    --statistics Minimum Maximum Average \
    --dimensions Name=DBInstanceIdentifier,Value={{my_instance{{}}}} \
    --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \
    --output table
```

下列 Linux 範例示範監控叢集中執行個體的容量。它測量執行個體的最小、最大和平均容量使用率。在三個小時內每小時進行一次測量。這些範例使用代表 DCUs 上限百分比的`DCUUtilization`指標，而不是`ServerlessDatabaseCapacity`代表固定數量DCUs。如此一來，您就不需要知道容量範圍內最小和最大 DCU 值的實際數字。您可看到從 0 到 100 的百分比。

```
aws cloudwatch get-metric-statistics \
    --metric-name "DCUUtilization" \
    --start-time "$(date -d '3 hours ago')" \
    --end-time "$(date -d 'now')" \
    --period 3600 \
    --namespace "AWS/DocDB" \
    --statistics Minimum Maximum Average \
    --dimensions Name=DBInstanceIdentifier,Value={{my_instance}} \
    --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \
    --output table
```

下列 Linux 範例執行與先前測量類似的測量。於此狀況下，測量適用於 `CPUUtilization` 指標。在 1 小時內每 10 分鐘進行一次測量。這些數字代表使用之可用 CPU 的百分比，以執行個體最大容量設定的可用 CPU 資源為基礎。

```
aws cloudwatch get-metric-statistics \
    --metric-name "CPUUtilization" \
    --start-time "$(date -d '1 hour ago')" \
    --end-time "$(date -d 'now')" \
    --period 600 \
    --namespace "AWS/DocDB" \
    --statistics Minimum Maximum Average \
    --dimensions Name=DBInstanceIdentifier,Value={{my_instance}} \
    --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \
    --output table
```

下列 Linux 範例執行與先前測量類似的測量。於此狀況下，測量適用於 `FreeableMemory` 指標。在 1 小時內每 10 分鐘進行一次測量。

```
aws cloudwatch get-metric-statistics \
    --metric-name "FreeableMemory" \
    --start-time "$(date -d '1 hour ago')" \
    --end-time "$(date -d 'now')" \
    --period 600 \
    --namespace "AWS/DocDB" \
    --statistics Minimum Maximum Average \
    --dimensions Name=DBInstanceIdentifier,Value={{my_instance}} \
    --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \
    --output table
```

## 使用 Performance Insights 監控 DocumentDB 無伺服器效能
<a name="w2aac43c27c11"></a>

您可以使用 Performance Insights 來監控 DocumentDB 無伺服器執行個體的效能。如需有關績效詳情的程序，請參閱 [使用績效詳情進行監控](performance-insights.md)。

下列新的績效詳情計數器適用於 DocumentDB 無伺服器執行個體：
+ **`os.general.serverlessDBCapacity`** — DCUs 中執行個體的目前容量。此值對應至執行個體的 `ServerlessDatabaseCapacity` CloudWatch 指標。
+ **`os.general.dcuUtilization`** — 目前容量超出設定容量上限的百分比。此值對應至執行個體的 `DCUUtilization` CloudWatch 指標。
+ **`os.general.maxConfiguredDcu`** — 您為此 DocumentDB 無伺服器執行個體設定的容量上限。它以 DCUs為單位。
+ **`os.general.minConfiguredDcu`** — 您為此 DocumentDB 無伺服器執行個體設定的最小容量。它以 DCUs為單位。

如需績效詳情計數器的完整清單，請參閱 [計數器指標的績效詳情](performance-insights-counter-metrics.md)。

在績效詳情中顯示 DocumentDB 無伺服器執行個體的 vCPU 值時，這些值代表根據執行個體 DCU 值的預估值。在預設的一分鐘間隔中，任何小數 vCPU 值皆會無條件進位至最接近的非負整數。若為較長的時間間隔，顯示的 vCPU 值為每分鐘整數 vCPU 值的平均值。