

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

# 監控 Amazon DocumentDB
<a name="monitoring_docdb"></a>

監控您的 AWS 服務是保持系統正常運作的重要部分。最好從 AWS 解決方案的所有部分收集監控資料，以便在發生故障或降級時更輕鬆地偵錯和修正。在開始監控解決方案 AWS 之前，建議您考慮並制定下列問題的答案：
+ 監控目標是什麼？
+ 您要監控哪些資源？
+ 監控這些資源的頻率為何？
+ 要使用哪些監控工具？
+ 誰負責進行監控？
+ 若發生錯誤，誰會收到通知以及透過何種方式？

若要了解目前的效能模式、識別效能異常，並制定方法來解決問題，您應該針對各種不同的時間、依不同的負載條件建立基準效能指標。當您監控解決方案 AWS 時，我們建議您存放歷史監控資料以供未來參考和建立基準。

一般來說，效能指標的可接受值視您的基準看起來像什麼，以及您的應用程式正在做什麼而定。調查距離基準的一致或趨勢變異。以下是關於特定類型指標的建議：
+ **高 CPU 或 RAM 使用**量 — 高 CPU 或 RAM 使用量值可能是適當的，前提是這些值符合您應用程式的目標 （例如輸送量或並行），並且是預期的。
+ **儲存磁碟區耗**用 — 如果使用的空間持續等於或高於總儲存磁碟區空間的 85%，則調查儲存耗用 (`VolumeBytesUsed`)。判斷您是否能從儲存磁碟區刪除資料，或將資料存檔至不同的系統來釋出空間。如需詳細資訊，請參閱[Amazon DocumentDB 儲存體](how-it-works.md#how-it-works.storage)及[Amazon DocumentDB 配額和限制](limits.md)。
+ **網路流量** — 對於網路流量，請與您的系統管理員討論，以了解網域網路和網際網路連線的預期輸送量。調查網路流量的傳輸量是否如預期一致地降低。
+ **資料庫連線** — 如果您看到大量使用者連線並降低執行個體效能和回應時間，請考慮限制資料庫連線。資料庫執行個體使用者連接的最佳數量，將因執行個體類別和要執行的操作複雜性而不同。
+ **IOPS 指標** — IOPS 指標的預期值取決於磁碟規格和伺服器組態，因此請使用基準來了解典型值。調查值是否與您的基準一致地不同。為獲得最佳 IOPS 效能，請確定您的一般工作集將放入記憶體中，以將讀取和寫入操作降到最低。

Amazon DocumentDB （與 MongoDB 相容） 提供各種 Amazon CloudWatch 指標，您可以監控這些指標來判斷 Amazon DocumentDB 叢集和執行個體的運作狀態和效能。您可以使用各種工具檢視 Amazon DocumentDB 指標，包括 Amazon DocumentDB 主控台 AWS CLI、CloudWatch API 和績效詳情。

**Topics**
+ [監控叢集的狀態](monitoring_docdb-cluster_status.md)
+ [監控執行個體的狀態](monitoring_docdb-instance_status.md)
+ [檢視 Amazon DocumentDB 建議](view-docdb-recommendations.md)
+ [事件訂閱](event-subscriptions.md)
+ [使用 CloudWatch 監控 Amazon DocumentDB](cloud_watch.md)
+ [使用 CloudTrail 記錄 Amazon DocumentDB API 呼叫](logging-with-cloudtrail.md)
+ [分析操作](profiling.md)
+ [使用績效詳情進行監控](performance-insights.md)

# 監控 Amazon DocumentDB 叢集的狀態
<a name="monitoring_docdb-cluster_status"></a>

根據叢集運作狀態的叢集狀態。您可以使用 Amazon DocumentDB 主控台或 AWS CLI `describe-db-clusters` 命令來檢視叢集的狀態。

**Topics**
+ [叢集狀態值](#monitoring_docdb-status_values)
+ [監控叢集的狀態](#monitor-cluster-status)

## 叢集狀態值
<a name="monitoring_docdb-status_values"></a>

下表列出叢集狀態的有效值。


| 叢集狀態 | Description | 
| --- | --- | 
| active | 叢集處於作用中狀態。此狀態僅適用於彈性叢集。 | 
| available | 叢集運作正常且可供使用。此狀態僅適用於執行個體型叢集。 | 
| backing-up | 目前正在備份資料庫叢集。 | 
| creating | 正在建立叢集。正在建立時無法存取它。 | 
| deleting | 正在刪除叢集。正在建立時無法將它刪除。 | 
| failing-over | 正在從主要執行個體容錯移轉至 Amazon DocumentDB 複本。 | 
| inaccessible-encryption-credentials | 用於加密或解密叢集的 AWS KMS 金鑰無法存取。 | 
| maintenance | 正在將維護更新套用到叢集。此狀態用於 Amazon DocumentDB 事先排程的叢集層級維護。 | 
| migrating | 正在將叢集快照還原至叢集。 | 
| migration-failed | 無法進行遷移。 | 
| modifying | 客戶請求修改叢集，因此正在進行修改。 | 
| renaming | 客戶請求重新命名叢集，因此正在重新命名。 | 
| resetting-master-credentials | 客戶請求重新設定叢集的主要登入資料，因此正在重新設定。 | 
| upgrading | 正在升級叢集引擎版本。 | 

## 監控叢集的狀態
<a name="monitor-cluster-status"></a>

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

使用 AWS 管理主控台 判斷叢集的狀態時，請使用下列程序。

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

1. 在導覽窗格中，選擇**叢集**。

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

1. 在**叢集識別符**欄中，尋找您感興趣的執行個體名稱。然後，若要尋找執行個體的狀態，請讀取該列中的**狀態**欄，如下所示。  
![\[顯示可用狀態的叢集執行個體。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/db-cluster-status-con.png)

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

使用 AWS CLI 判斷叢集的狀態時，請使用 `describe-db-clusters`操作。以下程式碼會尋找叢集 `sample-cluster` 的狀態。

針對 Linux、macOS 或 Unix：

```
aws docdb describe-db-clusters \
    --db-cluster-identifier sample-cluster  \
    --query 'DBClusters[*].[DBClusterIdentifier,Status]'
```

針對 Windows：

```
aws docdb describe-db-clusters ^
    --db-cluster-identifier sample-cluster  ^
    --query 'DBClusters[*].[DBClusterIdentifier,Status]'
```

此操作的輸出將會如下所示。

```
[
    [
        "sample-cluster",
        "available"
    ]
]
```

------

# 監控 Amazon DocumentDB 執行個體的狀態
<a name="monitoring_docdb-instance_status"></a>

Amazon DocumentDB 提供資料庫中每個已設定執行個體目前條件的相關資訊。

您可以檢視 Amazon DocumentDB 執行個體的三種狀態類型：
+ 執行個體狀態：此狀態會顯示在 中叢集資料表**的狀態**欄中， AWS 管理主控台 並顯示執行個體目前的生命週期條件。**狀態**欄中顯示的值衍生自 `DescribeDBCluster` API 回應的 `Status` 欄位。
+ 執行個體運作狀態：此狀態會顯示在 中叢集資料表的**執行個體運作**狀態欄中， AWS 管理主控台 並顯示負責管理和擷取資料的資料庫引擎元件是否正在執行。**執行個體運作**狀態欄中顯示的值是以 Amazon CloudWatch `EngineUptime`系統指標為基礎。
+ 維護狀態：此狀態會顯示在 中叢集資料表的**維護**欄中， AWS 管理主控台 並指出任何需要套用至執行個體的維護事件狀態。維護狀態獨立於其他執行個體狀態，且衍生自 `PendingMaintenanceAction` API。如需維護狀態的詳細資訊，請參閱[維護 Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/db-instance-maintain.html)。

**Topics**
+ [執行個體狀態值](#monitoring_docdb-instance_status-values)
+ [使用 AWS 管理主控台 或 監控執行個體狀態 AWS CLI](#monitoring-instance-status)
+ [執行個體運作狀態值](#instance-health-status-values)
+ [使用 監控執行個體運作狀態 AWS 管理主控台](#monitoring-instance-health-status)

## 執行個體狀態值
<a name="monitoring_docdb-instance_status-values"></a>

下表列出執行個體的可能狀態值，以及每種狀態的計費方式。表中列出是否將依執行個體和儲存體計費、只針對儲存體計費、或不計費。在所有執行個體狀態下，一律要為備份用途付費。


| 執行個體狀態 | 計費 | Description | 
| --- | --- | --- | 
| available | 計費 | 執行個體運作正常可供使用。 | 
| backing-up | 計費 | 目前正在備份執行個體。 | 
| configuring-log-exports | 計費 | 正在啟用或停用此執行個體的 Amazon CloudWatch Logs 發佈日誌檔案。 | 
| creating | 不計費 | 正在建立執行個體。當執行個體正在建立時，無法存取執行個體。 | 
| deleting | 不計費 | 正在刪除執行個體。 | 
| failed | 不計費 | 執行個體失敗，Amazon DocumentDB 無法復原它。若要復原資料，請執行時間點還原，還原到執行個體最近一次可還原時間。 | 
| inaccessible-encryption-credentials | 不計費 | 用於加密或解密執行個體的 AWS KMS 金鑰無法存取。 | 
| incompatible-network | 不計費 | Amazon DocumentDB 正在嘗試對執行個體執行復原動作，但無法這麼做，因為 VPC 處於阻止動作完成的狀態。例如，如果子網路中的所有可用 IP 地址都在使用中，且 Amazon DocumentDB 無法取得執行個體的 IP 地址，則可能會發生此狀態。 | 
| maintenance | 計費 | Amazon DocumentDB 正在將維護更新套用至執行個體。此狀態用於 Amazon DocumentDB 事先妥善排程的執行個體層級維護。我們正在評估透過此狀態對客戶公開其他維護動作的方式。 | 
| modifying | 計費 | 由於請求修改執行個體，因此正在修改執行個體。 | 
| rebooting | 計費 | 由於請求或需要重新啟動執行個體的 Amazon DocumentDB 程序，執行個體正在重新啟動。 | 
| renaming | 計費 | 由於請求重新命名執行個體，因此正在重新命名執行個體。 | 
| resetting-master-credentials | 計費 | 由於請求重設執行個體的主要登入資料，因此正在重設主要登入資料。 | 
| restore-error | 計費 | 執行個體在嘗試還原到某個時間點或從快照還原時發生錯誤。 | 
| starting | 針對儲存計費 | 執行個體正在啟動。 | 
| stopped | 針對儲存計費 | 執行個體已停止。 | 
| stopping | 針對儲存計費 | 正在停止執行個體。 | 
| storage-full | 計費 | 執行個體已達到其配置的儲存容量。這是一個重要的狀態，且應立即解決；請修改執行個體以擴展您的儲存。設定 Amazon CloudWatch 警示，在儲存空間不足時提醒您，以免遇到這種情況。 | 

## 使用 AWS 管理主控台 或 監控執行個體狀態 AWS CLI
<a name="monitoring-instance-status"></a>

使用 AWS 管理主控台 或 AWS CLI 來監控執行個體的狀態。

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

使用 AWS 管理主控台 判斷叢集的狀態時，請使用下列程序。

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

1. 在導覽窗格中，選擇**叢集**。
**注意**  
請注意，在叢集導覽方塊中，欄位**叢集識別符**會顯示叢集和執行個體。執行個體會列在叢集下方，如下圖所示。  
![\[Amazon DocumentDB 主控台中叢集頁面上的叢集和執行個體清單。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/clusters.png)

1. 尋找您感興趣的執行個體名稱。然後，閱讀該列上的 **Status (狀態)** 欄找出執行個體的狀態，如下所示。  
![\[狀態欄顯示叢集頁面上叢集和執行個體的可用狀態。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/instance-status.png)

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

使用 AWS CLI 判斷叢集的狀態時，請使用 `describe-db-instances`操作。以下程式碼會尋找執行個體 `sample-cluster-instance-01` 的狀態。

針對 Linux、macOS 或 Unix：

```
aws docdb describe-db-instances \
          --db-instance-identifier sample-cluster-instance-01  \
          --query 'DBInstances[*].[DBInstanceIdentifier,DBInstanceStatus]'
```

針對 Windows：

```
aws docdb describe-db-instances ^
          --db-instance-identifier sample-cluster-instance-01  ^
          --query 'DBInstances[*].[DBInstanceIdentifier,DBInstanceStatus]'
```

此操作的輸出將會如下所示。

```
[
          [
              "sample-cluster-instance-01",
              "available"
          ]
      ]
```

------

## 執行個體運作狀態值
<a name="instance-health-status-values"></a>

下表列出執行個體的可能運作狀態值。位於 **叢集**資料表中的**執行個體運作**狀態欄 AWS 管理主控台會顯示資料庫引擎、負責儲存、管理和擷取資料的元件是否正常運作。此欄也會指出 CloudWatch 中可用的`EngineUptime`系統指標是否顯示每個執行個體的運作狀態。


| 執行個體運作狀態 | Description | 
| --- | --- | 
| 狀態良好 | 資料庫引擎正在 Amazon DocumentDB 執行個體中執行。 | 
| 運作狀態不佳 | 資料庫引擎未執行或在一分鐘內重新啟動。 | 

## 使用 監控執行個體運作狀態 AWS 管理主控台
<a name="monitoring-instance-health-status"></a>

使用 AWS 管理主控台 來監控執行個體的運作狀態。

使用 時 AWS 管理主控台，請使用下列步驟來了解執行個體的運作狀態。

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

1. 在導覽窗格中，選擇**叢集**。
**注意**  
在**叢集**導覽方塊中，欄位**叢集識別符**會顯示叢集和執行個體。執行個體會列在叢集下方，如下圖所示。  
![\[Amazon DocumentDB 主控台中叢集頁面上的叢集和執行個體清單。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/clusters.png)

1. 尋找您感興趣的執行個體名稱。然後，若要尋找執行個體的狀態，請讀取該列中的**執行個體運作**狀態欄，如下圖所示：  
![\[執行個體運作狀態欄顯示叢集頁面上所列執行個體的運作狀態良好和運作狀態不佳。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/health-status-1.png)
**注意**  
執行個體運作狀態輪詢每 60 秒進行一次，並以 CloudWatch `EngineUptime`系統指標為基礎。**執行個體運作**狀態欄中的值會自動更新。

# 檢視 Amazon DocumentDB 建議
<a name="view-docdb-recommendations"></a>

Amazon DocumentDB 提供資料庫資源的自動化建議清單，例如執行個體和叢集。這些建議會分析您的叢集和執行個體組態，以提供最佳實務指引。

作為這些建議的範例，請參閱以下內容：


| Type | 描述 | 建議 | 其他資訊 | 
| --- | --- | --- | --- | 
|  一個 執行個體  |  叢集僅包含一個執行個體  |  效能和可用性：我們建議在不同的可用區域中新增具有相同執行個體類別的另一個執行個體。  |  [Amazon DocumentDB 高可用性和複寫](https://docs.aws.amazon.com/documentdb/latest/developerguide/replication.html)  | 

建立或修改資源時，Amazon DocumentDB 會產生資源的建議。Amazon DocumentDB 也會定期掃描您的資源並產生建議。

**檢視並對 Amazon DocumentDB 建議採取動作**

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

1. 在導覽窗格中，選擇**建議**：  
![\[選取建議選項的 Amazon DocumentDB 主控台導覽窗格。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/recommendations-nav-1.png)

1. 在**建議**對話方塊中，展開感興趣的區段，然後選取建議的任務。

   在下列範例中，建議的任務會套用至只有一個執行個體的 Amazon DocumentDB 叢集。建議是新增另一個執行個體來改善效能和可用性。  
![\[顯示 Amazon DocumentDB 叢集所選建議任務的建議表單。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/recommendations-1.png)

1. 按一下**立即套用**。

   在此範例中，會顯示**新增執行個體**對話方塊：  
![\[新增執行個體表單包含執行個體設定的選項。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/add-instances-1.png)

1. 修改新執行個體的設定，然後按一下**建立**。

# 使用 Amazon DocumentDB 事件訂閱
<a name="event-subscriptions"></a>

Amazon DocumentDB 使用 Amazon Simple Notification Service (Amazon SNS) 在 Amazon DocumentDB 事件發生時提供通知。這些通知可以是 Amazon SNS 支援的任何形式 AWS 區域，例如電子郵件、文字訊息或對 HTTP 端點的呼叫。

Amazon DocumentDB 將這些事件分組為您可以訂閱的類別，以便在發生該類別中的事件時收到通知。您可以訂閱執行個體、叢集、快照、叢集快照或參數群組的事件類別。例如，如果您訂閱指定執行個體的 Backup 類別，每當發生會影響執行個體的備份相關事件時，您都會收到通知。當事件訂閱變更時，您也會收到通知。

事件同時發生在叢集和執行個體層級，因此如果您訂閱叢集或執行個體，可以接收事件。

事件訂閱會傳送到您在建立訂閱時提供的地址。您可能想要建立數個不同的訂閱，例如接收所有事件通知的訂閱，以及僅包含生產執行個體關鍵事件的另一個訂閱。您可以輕鬆關閉通知，而無需刪除訂閱。若要這樣做，請在 Amazon DocumentDB 主控台中將**已啟用**選項按鈕設定為**否**。

**重要**  
Amazon DocumentDB 不保證事件串流中傳送的事件順序。事件順序可能會改變。

Amazon DocumentDB 使用 Amazon SNS 主題的 Amazon Resource Name (ARN) 來識別每個訂閱。Amazon DocumentDB 主控台會在您建立訂閱時為您建立 ARN。

Amazon DocumentDB 事件訂閱的計費是透過 Amazon SNS。使用事件通知需要支付 Amazon SNS 費用。如需詳細資訊，請參閱 Amazon Simple Notification Service 定價。除了 Amazon SNS 費用之外，Amazon DocumentDB 不會收取事件訂閱的費用。

**Topics**
+ [訂閱事件](event-subscriptions.subscribe.md)
+ [管理 訂閱](event-subscriptions.managing.md)
+ [類別和訊息](event-subscriptions.categories-messages.md)

# 訂閱 Amazon DocumentDB 事件
<a name="event-subscriptions.subscribe"></a>

您可以使用 Amazon DocumentDB 主控台來訂閱事件訂閱，如下所示：

1. 在 登入 AWS 管理主控台 [https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb)。

1. 在導覽窗格中，選擇 **Event subscriptions** (事件訂閱)。  
![\[反白顯示事件訂閱選項的 Amazon DocumentDB 主控台導覽窗格。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/event-subs/subscribe-event-subs.png)

1. 在 **Event subscriptions (事件訂閱)** 窗格中，選擇 **Create event subscription (建立事件訂閱)**。  
![\[事件訂閱窗格反白顯示右上角的建立事件訂閱按鈕。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/event-subs/subscribe-create.png)

1. 在 **Create event subscription** (建立事件訂閱) 對話方塊中，執行下列動作：
   + 在 **Name (名稱)** 中，輸入事件通知訂閱的名稱。  
![\[顯示詳細資訊區段和名稱輸入欄位的建立事件訂閱表單。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/event-subs/subscribe-name.png)
   + 針對**目標**，選擇您要傳送通知的目標。您可以選擇現有的 **ARN** 或選擇**新增電子郵件主題**，以輸入主題的名稱和收件人清單。  
![\[目標區段，包含可指定通知傳送目的地的選項。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/event-subs/subscribe-target.png)
   + 針對**來源**，選擇來源類型。根據您選擇的來源類型，選擇事件類別以及您要從中接收事件通知的來源。  
![\[要選取要接收事件通知的來源類型來源區段。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/event-subs/subscribe-source.png)
   + 選擇**建立**。  
![\[來源區段，加上右下角的建立按鈕。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/event-subs/subscribe-create-2.png)

# 管理 Amazon DocumentDB 事件通知訂閱
<a name="event-subscriptions.managing"></a>

如果您在 Amazon DocumentDB 主控台的導覽窗格中選擇**事件訂閱**，您可以檢視訂閱類別和目前訂閱的清單。您也可以修改或刪除特定訂閱。

## 修改您目前的 Amazon DocumentDB 事件通知訂閱
<a name="event-subscriptions.modify"></a>

1. 在 登入 AWS 管理主控台 [https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb)。

1. 在導覽窗格中，選擇 **Event subscriptions** (事件訂閱)。**Event subscriptions (事件訂閱)** 窗格顯示所有事件通知訂閱。  
![\[反白顯示事件訂閱選項的 Amazon DocumentDB 主控台導覽窗格。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/event-subs/modify-event-subs.png)

1. 在 **Event subscriptions (事件訂閱)** 窗格中，選擇您要修改的訂閱，然後選擇 **Edit (編輯)**。  
![\[事件訂閱窗格顯示選取的訂閱和編輯按鈕。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/event-subs/modify-edit.png)

1. 在 **Target (目標)** 或 **Source (來源)** 區段中，對訂閱進行變更。您可以新增或移除來源識別符，方法是在來源區段中選取或取消選取它們。  
![\[反白目標區段的修改事件訂閱表單。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/event-subs/modify-target.png)

1. 選擇 **Modify** (修改)。Amazon DocumentDB 主控台指出正在修改訂閱。  
![\[修改事件訂閱表單結尾，並反白顯示修改按鈕。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/event-subs/modify-button.png)

## 刪除 Amazon DocumentDB 事件通知訂閱
<a name="event-subscriptions.delete"></a>

您可以刪除不再需要的訂閱。該主題的所有訂閱者將不會再收到該訂閱指定的事件通知。

1. 在 登入 AWS 管理主控台 [https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb)。

1. 在導覽窗格中，選擇 **Event subscriptions** (事件訂閱)。  
![\[反白顯示事件訂閱選項的 Amazon DocumentDB 主控台導覽窗格。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/event-subs/delete-event-subs.png)

1. 在**事件訂閱**窗格中，選擇您要刪除的訂閱。  
![\[事件訂閱窗格顯示選取的訂閱。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/event-subs/delete-select.png)

1. 選擇 **刪除**。  
![\[事件訂閱窗格反白顯示刪除按鈕。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/event-subs/delete-delete.png)

1. 隨即出現快顯視窗，詢問您是否要永久刪除此通知。選擇 **刪除**。  
![\[確認刪除事件訂閱的對話方塊，並在右下角反白顯示刪除按鈕。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/event-subs/delete-delete-2.png)

# Amazon DocumentDB 事件類別和訊息
<a name="event-subscriptions.categories-messages"></a>

Amazon DocumentDB 在您可以使用主控台訂閱的類別中產生大量事件。每個類別都適用於來源類型，可以是執行個體、叢集、快照或參數群組。

**注意**  
Amazon DocumentDB 使用現有的 Amazon RDS 事件定義和 IDs。

## 源自執行個體的 Amazon DocumentDB 事件
<a name="event-subscriptions.db-origin"></a>


| 類別 | 描述 | 
| --- | --- | 
| 可用性 | 執行個體已重新啟動。 | 
| 可用性 | 執行個體關閉。 | 
| 組態變更 | 將修改套用至執行個體類別。 | 
| 組態變更 | 已完成將修改套用至執行個體類別。 | 
| 組態變更 | 重設主要登入資料。 | 
| 建立 | 執行個體已建立。 | 
| 刪除 | 執行個體已刪除 | 
| 失敗 | 由於組態不相容或基礎儲存體問題，執行個體失敗。開始執行個體的point-in-time-restore。 | 
| notification | 執行個體已停止。 | 
| notification | 執行個體已啟動。 | 
| notification | 執行個體正在啟動，因為它超過允許的停止時間上限。 | 
| 復原 | 執行個體的復原已開始。復原時間依據恢復的資料量而有不同。 | 
| 復原 | 執行個體的復原已完成。 | 
| 安全性修補程式 | 作業系統更新可供您的執行個體使用。如需套用更新的資訊，請參閱[維護 Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/db-instance-maintain.html)。 | 

## 源自叢集的 Amazon DocumentDB 事件
<a name="event-subscriptions.cluster-origin"></a>


| 類別 | 描述 | 
| --- | --- | 
| 建立 | 叢集已建立 | 
| 刪除 | 叢集已刪除。 | 
| 容錯移轉 | 再次提升先前的主要節點。 | 
| 容錯移轉 | 已完成容錯移轉至執行個體。 | 
| 容錯移轉 | 已開始容錯移轉至資料庫執行個體：%s | 
| 容錯移轉 | 已啟動相同的 AZ 容錯移轉至資料庫執行個體：%s | 
| 容錯移轉 | 已開始跨可用區容錯移轉至資料庫執行個體：%s | 
| 維護 | 叢集已修補。 | 
| 維護 | 資料庫叢集處於無法升級的狀態：%s | 
| notification | 叢集已停止。 | 
| notification | 叢集已啟動。 | 
| notification | 叢集停止失敗。 | 
| notification | 由於叢集超過允許的停止時間上限，因此正在啟動叢集。 | 
| notification | 已將叢集從 %s 重新命名為 %s。 | 

## 源自叢集快照的 Amazon DocumentDB 事件
<a name="event-subscriptions.snapshot-origin"></a>

下表顯示當 Amazon DocumentDB 叢集快照是來源類型時的事件類別和事件清單。


| 類別 | 描述 | 
| --- | --- | 
| 備份 | 正在建立手動叢集快照。 | 
| 備份 | 已建立手動叢集快照。 | 
| 備份 | 建立自動叢集快照。 | 
| 備份 | 已建立自動叢集快照。 | 

## 源自參數群組的 Amazon DocumentDB 事件
<a name="event-subscriptions.parameter"></a>

下表顯示當參數群組為來源類型時的事件類別和事件清單。


| 類別 | 描述 | 
| --- | --- | 
| 組態變更 | 使用套用方法 %s 將參數 %s 更新至 %s | 

# 使用 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`代表客戶起始的連線。

# 使用 記錄 Amazon DocumentDB API 呼叫 AWS CloudTrail
<a name="logging-with-cloudtrail"></a>

Amazon DocumentDB （具有 MongoDB 相容性） 已與 服務整合 AWS CloudTrail，該服務提供 Amazon DocumentDB （具有 MongoDB 相容性） AWS 中使用者、角色或服務所採取動作的記錄。CloudTrail 會將 Amazon DocumentDB 的所有 AWS CLI API 呼叫擷取為事件，包括來自 Amazon DocumentDB 主控台的呼叫，以及來自對 Amazon DocumentDB SDK 的程式碼呼叫。如果您建立追蹤，則可以啟用 CloudTrail 事件持續交付至 Amazon S3 儲存貯體，包括 Amazon DocumentDB 的事件。即使您未設定追蹤，依然可以透過 CloudTrail 主控台中的 **Event history** (事件歷史記錄) 檢視最新事件。您可以使用 CloudTrail 收集的資訊，判斷對 Amazon DocumentDB 提出的請求 （與 MongoDB 相容）、提出請求的 IP 地址、提出請求的人員、提出請求的時間，以及其他詳細資訊。

**重要**  
對於某些管理功能，Amazon DocumentDB 使用與 Amazon Relational Database Service (Amazon RDS) 共享的操作技術。Amazon DocumentDB 主控台 AWS CLI和 API 呼叫會記錄為對 Amazon RDS API 發出的呼叫。

若要進一步了解 AWS CloudTrail，請參閱 [AWS CloudTrail 使用者指南](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)。

## CloudTrail 中的 Amazon DocumentDB 資訊
<a name="logging-with-cloudtrail-info-available"></a>

建立帳戶 AWS 帳戶 時，您的 上會啟用 CloudTrail。當活動在 Amazon DocumentDB （與 MongoDB 相容） 中發生時，該活動會記錄於 CloudTrail 事件，以及**事件歷史記錄**中的其他服務 AWS 事件。您可以在 中檢視、搜尋和下載最近的事件 AWS 帳戶。如需詳細資訊，請參閱《使用 CloudTrail 事件歷史記錄檢視事件》[https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)。

若要持續記錄 中的事件 AWS 帳戶，包括 Amazon DocumentDB 的事件 （具有 MongoDB 相容性），請建立追蹤。線索能讓 CloudTrail 將日誌檔案交付至 Amazon S3 儲存貯體。依預設，當您在主控台中建立追蹤時，該追蹤會套用至所有的 AWS 區域。該追蹤會記錄來自 AWS 分割區中所有區域的事件，並將日誌檔案交付到您指定的 Amazon S3 儲存貯體。此外，您可以設定其他 AWS 服務，以進一步分析 CloudTrail 日誌中收集的事件資料並對其採取行動。如需詳細資訊，請參閱 *AWS CloudTrail 使用者指南*中的以下主題：
+ [建立追蹤的概觀](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [CloudTrail 支援的服務和整合](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html#cloudtrail-aws-service-specific-topics-integrations)
+ [設定 CloudTrail 的 Amazon SNS 通知](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/configure-sns-notifications-for-cloudtrail.html)
+ [從多個區域接收 CloudTrail 日誌檔案](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html)
+ [從多個帳戶接收 CloudTrail 日誌檔案](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

每一筆事件或記錄項目都會包括產生請求者的資訊。身分資訊可協助您判斷下列事項：
+ 該請求是否使用根或使用者憑證提出。
+ 提出該請求時，是否使用了特定角色或聯合身分使用者的暫時安全憑證。
+ 請求是否由其他 AWS 服務提出。

如需詳細資訊，請參閱 [CloudTrail userIdentity 元素](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)。

# 分析 Amazon DocumentDB 操作
<a name="profiling"></a>

您可以使用 Amazon DocumentDB 中的分析器 （與 MongoDB 相容） 來記錄叢集上執行的操作的執行時間和詳細資訊。Profiler 適用於監控叢集上最慢的操作，以協助您改善個別查詢效能和整體叢集效能。

根據預設會停用 Profiler 功能。啟用時，分析器會將花費超過客戶定義閾值 （例如 100 毫秒） 的操作記錄到 Amazon CloudWatch Logs。記錄的詳細資訊包括已分析的命令、時間、計劃摘要和用戶端中繼資料。操作記錄到 CloudWatch Logs 之後，您可以使用 CloudWatch Logs Insights 來分析、監控和封存 Amazon DocumentDB 分析資料。[常見查詢](#profiling.common-queries)小節提供常用的查詢。

啟用時，Profiler 會使用叢集的額外資源。我們建議您從高閾值 (例如 500 毫秒) 開始，再逐漸降低該值，以識別慢速操作。對於高輸送量應用程式，從閾值 50 毫秒開始可能會在叢集上造成效能問題。分析器會在叢集層級啟用，並在叢集中的所有執行個體和資料庫上運作。Amazon DocumentDB 會盡力將操作記錄到 Amazon CloudWatch Logs。

雖然 Amazon DocumentDB 不收取額外費用來啟用分析器，但您需要支付使用 CloudWatch Logs 的標準費率。如需 CloudWatch Logs 定價的資訊，請參閱 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)。

**Topics**
+ [受支援的操作](#profiling.supported-commands)
+ [限制](#profiling.limitations)
+ [啟用分析器](#profiling.enable-profiling)
+ [停用分析器](#profiling.disable-profiling)
+ [停用分析器日誌匯出](#profiling.disabling-logs-export)
+ [存取您的分析器日誌](#profiling.accessing)
+ [常見查詢](#profiling.common-queries)

## 受支援的操作
<a name="profiling.supported-commands"></a>

Amazon DocumentDB Profiler 支援下列操作：
+ `aggregate`
+ `count`
+ `delete`
+ `distinct`
+ `find` (OP\$1QUERY 和命令)
+ `findAndModify`
+ `insert`
+ `update`

## 限制
<a name="profiling.limitations"></a>

慢查詢分析器只有在查詢的整個結果集能夠容納在一個批次中，且結果集低於 16MB （最大 BSON 大小） 時，才能發出分析器日誌。大於 16MB 的結果集會自動分割成多個批次。

大多數驅動程式或 Shell 可能會設定較小的預設批次大小。您可以在查詢中指定批次大小。為了擷取慢查詢日誌，我們建議批次大小超過預期結果集的大小。如果您不確定結果集大小，或是大小不同，也可以將批次大小設定為較大的數字 （例如 100k)。

不過，使用較大的批次大小表示在將回應傳送到用戶端之前，必須從資料庫擷取更多結果。對於某些查詢，這可能會在取得結果之前產生較長的延遲。如果您不打算使用整個結果集，則可能會花費更多 I/O 來處理查詢並捨棄結果。

## 啟用 Amazon DocumentDB 分析器
<a name="profiling.enable-profiling"></a>

在叢集上啟用 Profiler 包含三個步驟。確保所有步驟都已完成，否則分析日誌將不會傳送至 CloudWatch Logs。Profiler 是在叢集層級設定，並在叢集的所有資料庫和執行個體上執行。

**在叢集上啟用 Profiler**

1. 由於您無法修改預設叢集參數群組，請確保您有可用的自訂叢集參數群組。如需詳細資訊，請參閱[建立 Amazon DocumentDB 叢集參數群組](cluster_parameter_groups-create.md)。

1. 使用可用的自訂叢集參數群組，修改下列參數：`profiler`、`profiler_threshold_ms` 和 `profiler_sampling_rate`。如需詳細資訊，請參閱[修改 Amazon DocumentDB 叢集參數群組](cluster_parameter_groups-modify.md)。

1. 建立或修改叢集以使用自訂叢集參數群組，並啟用將`profiler`日誌匯出至 CloudWatch Logs。

下列各節說明如何使用 AWS 管理主控台 和 AWS Command Line Interface () 實作這些步驟AWS CLI。

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

1. 開始之前，如果您還沒有 Amazon DocumentDB 叢集和自訂叢集參數群組，請建立叢集參數群組。如需詳細資訊，請參閱[建立 Amazon DocumentDB 叢集參數群組](cluster_parameter_groups-create.md)及[建立 Amazon DocumentDB 叢集](db-cluster-create.md)。

1. 使用可用的自訂叢集參數群組，修改下列參數。如需詳細資訊，請參閱[修改 Amazon DocumentDB 叢集參數群組](cluster_parameter_groups-modify.md)。
   + `profiler` — 啟用或停用查詢分析。允許值為 `enabled ` 和 `disabled`。預設值為 `disabled`。若要啟用分析，請將值設定為 `enabled`。
   + `profiler_threshold_ms` — 當 `profiler` 設定為 時`enabled`，所有花費超過 的命令` profiler_threshold_ms`都會記錄到 CloudWatch。允許值為 `[50-INT_MAX]`。預設值為 `100`。
   + `profiler_sampling_rate` — 應分析或記錄的慢速操作部分。允許值為 `[0.0-1.0]`。預設值為 `1.0`。

1. 修改您的叢集以使用自訂叢集參數群組，並將分析器日誌匯出設定為發佈至 Amazon CloudWatch。

   1. 在導覽窗格中，選擇 **Clusters (叢集)** 來將自訂參數群組新增至叢集。

   1. 選擇參數群組要與其建立關聯之叢集名稱左側的按鈕。選取 **Actions (動作)**，然後選取 **Modify (修改) **以修改您的叢集。

   1. 在 **Cluster (叢集) 選項**下，從上述步驟中選擇自訂參數群組，以將其新增至您的叢集。

   1. 在**日誌匯出**下，選取要發佈至 Amazon CloudWatch 的**分析器日誌**。

   1. 選擇 **Continue (繼續)** 以檢視修改摘要。

   1. 確認變更後，即可立即套用，或是在下一個維護時段在 **Scheduling of modifications (修改的排程)** 下套用。

   1. 選擇 **Modify cluster (修改叢集)** 來以新的參數群組更新叢集。

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

下列程序會在叢集 `sample-cluster` 的所有受支援操作上啟用 Profiler。

1. 在開始之前，請執行下列命令，並檢閱名稱中沒有 `default` 且具有 `docdb3.6` 作為參數群組系列之叢集參數群組的輸出，以確定您擁有可用的自訂叢集參數群組。如果您沒有非預設的叢集參數群組，請參閱[建立 Amazon DocumentDB 叢集參數群組](cluster_parameter_groups-create.md)。

   ```
   aws docdb describe-db-cluster-parameter-groups \
       --query 'DBClusterParameterGroups[*].[DBClusterParameterGroupName,DBParameterGroupFamily]'
   ```

   在下列輸出中，僅 `sample-parameter-group ` 符合這兩個條件。

   ```
   [
          [
              "default.docdb3.6",
              "docdb3.6"
          ],
          [
              "sample-parameter-group",
              "docdb3.6"
          ]
   ]
   ```

1. 使用您的自訂叢集參數群組，修改下列參數：
   + `profiler` — 啟用或停用查詢分析。允許值為 `enabled ` 和 `disabled`。預設值為 `disabled`。若要啟用分析，請將值設定為 `enabled`。
   + `profiler_threshold_ms` — 當 `profiler` 設為 時`enabled`，所有花費超過 的命令`profiler_threshold_ms`都會記錄到 CloudWatch。允許值為 `[50-INT_MAX]`。預設值為 `100`。
   + `profiler_sampling_rate` — 應分析或記錄的慢速操作部分。允許值為 `[0.0-1.0]`。預設值為 `1.0`。

   ```
   aws docdb modify-db-cluster-parameter-group \
       --db-cluster-parameter-group-name sample-parameter-group \
       --parameters ParameterName=profiler,ParameterValue=enabled,ApplyMethod=immediate \
                    ParameterName=profiler_threshold_ms,ParameterValue=100,ApplyMethod=immediate \
                    ParameterName=profiler_sampling_rate,ParameterValue=0.5,ApplyMethod=immediate
   ```

1. 修改 Amazon DocumentDB 叢集，使其使用上一個步驟的`sample-parameter-group`自訂叢集參數群組，並將 參數`--enable-cloudwatch-logs-exports`設定為 `profiler`。

   下列程式碼會將叢集修改`sample-cluster`為使用上一個步驟`sample-parameter-group`的 ，並新增至已啟用`profiler`的 CloudWatch Logs 匯出。

   ```
   aws docdb modify-db-cluster \
          --db-cluster-identifier sample-cluster \
          --db-cluster-parameter-group-name sample-parameter-group \
          --cloudwatch-logs-export-configuration '{"EnableLogTypes":["profiler"]}'
   ```

   此操作的輸出將會如下所示。

   ```
   {
       "DBCluster": {
           "AvailabilityZones": [
               "us-east-1c",
               "us-east-1b",
               "us-east-1a"
           ],
           "BackupRetentionPeriod": 1,
           "DBClusterIdentifier": "sample-cluster",
           "DBClusterParameterGroup": "sample-parameter-group",
           "DBSubnetGroup": "default",
           "Status": "available",
           "EarliestRestorableTime": "2020-04-07T02:05:12.479Z",
           "Endpoint": "sample-cluster.node.us-east-1.docdb.amazonaws.com",
           "ReaderEndpoint": "sample-cluster.node.us-east-1.docdb.amazonaws.com",
           "MultiAZ": false,
           "Engine": "docdb",
           "EngineVersion": "3.6.0",
           "LatestRestorableTime": "2020-04-08T22:08:59.317Z",
           "Port": 27017,
           "MasterUsername": "test",
           "PreferredBackupWindow": "02:00-02:30",
           "PreferredMaintenanceWindow": "tue:09:50-tue:10:20",
           "DBClusterMembers": [
               {
                   "DBInstanceIdentifier": "sample-instance-1",
                   "IsClusterWriter": true,
                   "DBClusterParameterGroupStatus": "in-sync",
                   "PromotionTier": 1
               },
               {
                   "DBInstanceIdentifier": "sample-instance-2",
                   "IsClusterWriter": true,
                   "DBClusterParameterGroupStatus": "in-sync",
                   "PromotionTier": 1
               }
           ],
           "VpcSecurityGroups": [
               {
                   "VpcSecurityGroupId": "sg-abcd0123",
                   "Status": "active"
               }
           ],
           "HostedZoneId": "ABCDEFGHIJKLM",
           "StorageEncrypted": true,
           "KmsKeyId": "arn:aws:kms:us-east-1:<accountID>:key/sample-key",
           "DbClusterResourceId": "cluster-ABCDEFGHIJKLMNOPQRSTUVWXYZ",
           "DBClusterArn": "arn:aws:rds:us-east-1:<accountID>:cluster:sample-cluster",
           "AssociatedRoles": [],
           "ClusterCreateTime": "2020-01-10T22:13:38.261Z",
           "EnabledCloudwatchLogsExports": [
               "profiler"
           ],
           "DeletionProtection": true
       }
   }
   ```

------

## 停用 Amazon DocumentDB 分析器
<a name="profiling.disable-profiling"></a>

若要停用分析器，請同時停用 `profiler` 參數和將`profiler`日誌匯出至 CloudWatch Logs。

### 停用 Profiler
<a name="profiling.disable-profiler"></a>

您可以使用 AWS 管理主控台 或 停用 `profiler` 參數 AWS CLI，如下所示。

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

下列程序使用 AWS 管理主控台 來停用 Amazon DocumentDB `profiler`。

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

1. 在導覽窗格中，選擇 **Parameter groups** (參數群組)。然後選擇您要停用 Profiler 的叢集參數群組的名稱。

1. 在產生的 **Cluster parameters (叢集參數)** 頁面中，選取 `profiler` 參數左邊的按鈕，然後選擇 **Edit (編輯)**。

1. 在 **Modify profiler (修改 Profiler)** 對話方塊中，選擇清單中的 `disabled`。

1. 選擇 **Modify cluster parameter (修改叢集參數)**。

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

若要使用 AWS CLI在叢集上停用 `profiler`，請修改叢集，如下所示。

```
aws docdb modify-db-cluster-parameter-group \
    --db-cluster-parameter-group-name sample-parameter-group \
    --parameters ParameterName=profiler,ParameterValue=disabled,ApplyMethod=immediate
```

------

## 停用分析器日誌匯出
<a name="profiling.disabling-logs-export"></a>

您可以使用 AWS 管理主控台 或 來停用將`profiler`日誌匯出至 CloudWatch Logs AWS CLI，如下所示。

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

下列程序使用 AWS 管理主控台 來停用 Amazon DocumentDB 匯出日誌至 CloudWatch。

1. 在 https：//[https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb) 開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇**叢集**。對於您要停止匯出日誌的叢集，選擇其名稱左側的按鈕。

1. 在 **Actions (動作)** 功能表上，選擇 **Modify (修改)**。

1. 向下捲動至 **Log exports (日誌匯出)** 區段，並取消選取 **Profiler logs (分析工具日記)**。

1. 選擇**繼續**。

1. 檢閱您的變更，然後選擇希望叢集套用此變更的時機：
   + **Apply during the next scheduled maintenance window (在下次排定的維護時段套用)**
   + **Apply immediately (立即套用)**

1. 選擇**修改叢集**。

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

下列程式碼會修改叢集`sample-cluster `，並停用 CloudWatch Profiler 日誌。

**Example**  
針對 Linux、macOS 或 Unix：  

```
aws docdb modify-db-cluster \
   --db-cluster-identifier sample-cluster \
   --cloudwatch-logs-export-configuration '{"DisableLogTypes":["profiler"]}'
```
針對 Windows：  

```
aws docdb modify-db-cluster ^
   --db-cluster-identifier sample-cluster ^
   --cloudwatch-logs-export-configuration '{"DisableLogTypes":["profiler"]}'
```
此操作的輸出將會如下所示。  

```
{
    "DBCluster": {
        "AvailabilityZones": [
            "us-east-1c",
            "us-east-1b",
            "us-east-1a"
        ],
        "BackupRetentionPeriod": 1,
        "DBClusterIdentifier": "sample-cluster",
        "DBClusterParameterGroup": "sample-parameter-group",
        "DBSubnetGroup": "default",
        "Status": "available",
        "EarliestRestorableTime": "2020-04-08T02:05:17.266Z",
        "Endpoint": "sample-cluster.node.us-east-1.docdb.amazonaws.com",
        "ReaderEndpoint": "sample-cluster.node.us-east-1.docdb.amazonaws.com",
        "MultiAZ": false,
        "Engine": "docdb",
        "EngineVersion": "3.6.0",
        "LatestRestorableTime": "2020-04-09T05:14:44.356Z",
        "Port": 27017,
        "MasterUsername": "test",
        "PreferredBackupWindow": "02:00-02:30",
        "PreferredMaintenanceWindow": "tue:09:50-tue:10:20",
        "DBClusterMembers": [
            {
                "DBInstanceIdentifier": "sample-instance-1",
                "IsClusterWriter": true,
                "DBClusterParameterGroupStatus": "in-sync",
                "PromotionTier": 1
            },
            {
                "DBInstanceIdentifier": "sample-instance-2",
                "IsClusterWriter": true,
                "DBClusterParameterGroupStatus": "in-sync",
                "PromotionTier": 1
            }
        ],
        "VpcSecurityGroups": [
            {
                "VpcSecurityGroupId": "sg-abcd0123",
                "Status": "active"
            }
        ],
        "HostedZoneId": "ABCDEFGHIJKLM",
        "StorageEncrypted": true,
        "KmsKeyId": "arn:aws:kms:us-east-1:<accountID>:key/sample-key",
        "DbClusterResourceId": "cluster-ABCDEFGHIJKLMNOPQRSTUVWXYZ",
        "DBClusterArn": "arn:aws:rds:us-east-1:<accountID>:cluster:sample-cluster",
        "AssociatedRoles": [],
        "ClusterCreateTime": "2020-01-10T22:13:38.261Z",
        "DeletionProtection": true
    }
}
```

------

## 存取 Amazon DocumentDB 分析器日誌
<a name="profiling.accessing"></a>

請依照下列步驟，在 Amazon CloudWatch 上存取您的設定檔日誌。

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 請確定您位於與 Amazon DocumentDB 叢集相同的區域。

1. 在導覽窗格中，選擇**日誌**。

1. 若要尋找叢集的分析工具日誌，請在清單中選擇 `/aws/docdb/yourClusterName/profiler`。

   您可在每個執行個體名稱下分別取得每個執行個體的描述檔日誌。

## 常見查詢
<a name="profiling.common-queries"></a>

以下是一些常用的查詢，可用來分析您已側錄的命令。如需 CloudWatch Logs Insights 的詳細資訊，請參閱[使用 CloudWatch Logs Insights 分析日誌資料](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html)和[範例查詢](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax-examples.html)。

### 取得指定集合上 10 個最慢的操作
<a name="profiling.common-queries.slow-queries-on-collection"></a>

```
filter ns="test.foo" | sort millis desc | limit 10
```

### 取得花費超過 60 毫秒集合的所有更新操作
<a name="profiling.common-queries.updates-gt-60-ms"></a>

```
filter millis > 60 and op = "update"
```

### 取得上個月 10 個最慢的操作
<a name="profiling.common-queries.slow-queries-last-month"></a>

```
sort millis desc | limit 10
```

### 使用 COLLSCAN 計劃摘要取得所有查詢
<a name="profiling.common-queries.collscan-plan-summary"></a>

```
filter planSummary="COLLSCAN"
```

# 使用績效詳情進行監控
<a name="performance-insights"></a>

Performance Insights 會新增現有的 Amazon DocumentDB 監控功能，以說明您的叢集效能，並協助您分析影響叢集效能的任何問題。使用績效詳情儀表板，您可以視覺化資料庫負載，並依等待、查詢陳述式、主機或應用程式篩選負載。

**注意**  
Performance Insights 僅適用於 Amazon DocumentDB 3.6、4.0、5.0 和 8.0 執行個體型叢集。

**它如何有用？**
+ 視覺化資料庫效能 — 視覺化負載，以判斷負載在資料庫上的時間和位置
+ 判斷造成資料庫負載的原因 — 判斷哪些查詢、主機和應用程式造成執行個體負載
+ 判斷資料庫何時載入 - 放大績效詳情儀表板以專注於特定事件，或縮小以查看較大時間範圍的趨勢
+ 資料庫負載警示 — 從 CloudWatch 自動存取新的資料庫負載指標，您可以在其中監控資料庫負載指標和其他 Amazon DocumentDB 指標，並設定警示

**Amazon DocumentDB Performance Insights 有哪些限制？**
+  AWS GovCloud （美國東部） 和 AWS GovCloud （美國西部） 區域中的績效詳情不可用
+ Amazon DocumentDB 的績效詳情會保留最多 7 天的效能資料
+ 績效詳情中不會彙總超過 1，024 個位元組的查詢

**Topics**
+ [績效詳情概念](performance-insights-concepts.md)
+ [啟用和停用績效詳情](performance-insights-enabling.md)
+ [設定績效詳情的存取政策](performance-insights-policies.md)
+ [使用績效詳情儀表板來分析指標](performance-insights-analyzing.md)
+ [使用績效詳情 API 來擷取指標](performance-insights-metrics.md)
+ [Performance Insights 的 Amazon CloudWatch 指標](performance-insights-cloudwatch.md)
+ [計數器指標的績效詳情](performance-insights-counter-metrics.md)

# 績效詳情概念
<a name="performance-insights-concepts"></a>

**Topics**
+ [平均作用中工作階段](#performance-insights-concepts-sessions)
+ [維度](#performance-insights-concepts-dimensions)
+ [最大 vCPU](#performance-insights-concepts-maxvcpu)

## 平均作用中工作階段
<a name="performance-insights-concepts-sessions"></a>

資料庫負載 (DB 負載) 測量資料庫中的活動程度。績效詳情中的關鍵指標為 `DB Load`，每秒收集一次。`DBLoad` 指標的單位是 Amazon DocumentDB *執行個體的平均作用中工作階段 (AAS)*。

*作用中*工作階段是已將工作提交至 Amazon DocumentDB 執行個體並等待回應的連線。例如，如果您將查詢提交至 Amazon DocumentDB 執行個體，資料庫工作階段會在執行個體處理查詢時處於作用中狀態。

若要取得平均作用中工作階段 (AAS)，績效詳情會取樣同時執行查詢的工作階段數目。AAS 是工作階段總數除以樣本總數。下表顯示執行中查詢的五個連續範例。


| 樣本 | 執行查詢的工作階段數目 | AAS | 算式 | 
| --- | --- | --- | --- | 
|  1  |  2  |  2  |  2 個工作階段 / 1 個樣本  | 
|  2  |  0  |  1  |  2 個工作階段 / 2 個樣本  | 
|  3  |  4  |  2  |  6 個工作階段 / 3 個樣本  | 
|  4  |  0  |  1.5  |  6 個工作階段 / 4 個樣本  | 
|  5  |  4  |  2  |  10 個工作階段 / 5 個樣本  | 

在上述範例中，1-5 時間間隔的資料庫負載為 2 個 AAS。資料庫負載的增加意味著，就平均而言，更多的工作階段正執行於資料庫上。

## 維度
<a name="performance-insights-concepts-dimensions"></a>

`DB Load` 指標與其他時間序列指標不同，因為您可以將它分為名為維度的子元件。您可以將維度視為 `DB Load` 指標的不同特性類別。當您診斷效能問題時，最有用的維度是**等待狀態**和**熱門查詢**。

**等待狀態**  
*等待狀態*會導致查詢陳述式等待特定事件發生，然後才能繼續執行。例如，查詢陳述式可能會等到鎖定的資源解除鎖定。透過`DB Load`結合等待狀態，您可以取得工作階段狀態的完整資訊。以下是各種 Amazon DocumentDB 等待狀態：


| Amazon DocumentDB 等待狀態 | 等待狀態描述 | 
| --- | --- | 
|  鎖定  |  當工作階段正在等待分頁緩衝集區時，會發生鎖定等待狀態。當系統經常處理大型查詢、集合掃描，或緩衝集區太小而無法處理工作集時，經常分頁和分頁緩衝集區。  | 
| CPU |  當工作階段在 CPU 上等待時，會發生 CPU 等待狀態。  | 
|  CollectionLock  |  當工作階段正在等待取得集合的鎖定時，會發生 CollectionLock 等待狀態。當集合上有 DDL 操作時，就會發生這些事件。  | 
| DocumentLock |  當工作階段正在等待取得文件鎖定時，會發生 DocumentLock 等待狀態。對相同文件進行大量並行寫入會導致該文件的 DocumentLock 等待狀態變多。  | 
|  SystemLock  |  當工作階段在系統上等待時，會發生 SystemLock 等待狀態。當系統經常有長時間執行的查詢、長時間執行的交易或高並行時，就會發生這種情況。  | 
|  IO  |  當工作階段等待 IO 完成時，會發生 IO 等待狀態。  | 
|  BufferLock  |  當工作階段正在緩衝區中的共用頁面上等待取得鎖定時，BufferLock 等待狀態就會發生。如果其他程序在請求的頁面上保留開啟游標，BufferLock 等待狀態可能會延長。  | 
|  LowMemThrottle  |  當工作階段因 Amazon DocumentDB 執行個體上的記憶體壓力過大而等待時，會發生 LowMemThrottle 等待狀態。如果此狀態持續很長時間，請考慮擴展執行個體以提供額外的記憶體。如需詳細資訊，請參閱 [Resource Governor](https://docs.aws.amazon.com/documentdb/latest/developerguide/how-it-works.html)。  | 
|  BackgroundActivity  |  當工作階段正在等待內部系統程序時，會發生 BackgroundActivity 等待狀態。  | 
|  其他  |  其他等待狀態是內部等待狀態。如果此狀態持續很長時間，請考慮終止此查詢。如需詳細資訊，請參閱[如何尋找和終止長時間執行或封鎖的查詢？](https://docs.aws.amazon.com/documentdb/latest/developerguide/user_diagnostics.html#user_diagnostics-query_terminating.html)  | 

**熱門查詢**  
等待狀態會顯示瓶頸，而熱門查詢會顯示哪些查詢對資料庫負載的影響最大。例如，許多查詢目前可能正在資料庫上執行，但單一查詢可能會耗用 99% 的資料庫負載。在此情況下，高負載可能表示查詢發生問題。

## 最大 vCPU
<a name="performance-insights-concepts-maxvcpu"></a>

在儀表板中，**資料庫負載**圖表會收集、彙整並顯示工作階段資訊。若要查看作用中的工作階段是否超過最大 CPU，請查看它與**最大 vCPU 數**線的關係。**最大 vCPU** 值取決於 Amazon DocumentDB 執行個體的 vCPU （虛擬 CPU) 核心數量。

若資料庫負載通常高於**最大 vCPU 數**線，而主要等待狀態為 CPU，則 CPU 會超過負載。在這種情況下，您可能想要調節執行個體的連線、調整具有高 CPU 負載的任何查詢，或考慮較大的執行個體類別。處於任何等待狀態的密集且穩定的執行個體表示可能有您應解決的瓶頸或資源爭用問題。即使資料庫負載未超過**最大 vCPU 數**線，仍可能會有上述的問題。

# 啟用和停用績效詳情
<a name="performance-insights-enabling"></a>

若要使用績效詳情，請在資料庫執行個體上啟用。您可以視需要稍後停用它。啟用和停用績效詳情不會造成停機、重新開機或容錯移轉。

績效詳情代理程式會耗用資料庫主機上有限的 CPU 和記憶體。當資料庫負載過高時，代理程式會減少收集資料的頻率來限制效能影響。

## 建立叢集時啟用績效詳情
<a name="performance-insights-enabling-create-instance"></a>

在主控台中，您可以在建立或修改新的資料庫執行個體時啟用或停用績效詳情。

### 使用 AWS 管理主控台
<a name="create-instance-console"></a>

在 主控台中，您可以在建立 Amazon DocumentDB 叢集時啟用績效詳情。當您建立新的 Amazon DocumentDB 叢集時，請在績效詳情區段中選擇啟用**績效詳情來啟用****績效詳情**。

**主控台指示**

1. 若要建立叢集，請遵循[建立 Amazon DocumentDB 叢集的指示。](https://docs.aws.amazon.com/documentdb/latest/developerguide/db-cluster-create.html)

1. 在**績效詳情區段中選取啟用**績效詳情。  
![\[已選取啟用績效詳情的績效詳情區段。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/performance-insights/select-performance-insights.png)
**注意**  
Performance Insights 資料保留期間為七天。

   ** AWS KMS key** — 指定您的 AWS KMS 金鑰。Performance Insights 會使用 AWS KMS 金鑰加密所有潛在的敏感資料。將會對傳輸中與靜態資料進行加密。如需詳細資訊，請參閱設定績效詳情 AWS AWS KMS 的政策。

## 修改執行個體時啟用和停用
<a name="performance-insights-enabling-modify-instance"></a>

您可以使用 主控台或 修改資料庫執行個體來啟用或停用績效詳情 AWS CLI。

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

**主控台指示**

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

1. 選擇 **Clusters (叢集)**。

1. 選擇資料庫執行個體，然後選擇 **修改 (Modify)**。

1. 在績效詳情區段中，選擇**啟用績效詳情**或**停用績效詳情**。
**注意**  
如果您選擇**啟用績效詳情**，您可以指定您的 AWS AWS KMS 金鑰。Performance Insights 會使用 AWS KMS 金鑰加密所有潛在的敏感資料。將會對傳輸中與靜態資料進行加密。如需詳細資訊，請參閱[加密靜態 Amazon DocumentDB 資料](https://docs.aws.amazon.com/documentdb/latest/developerguide/encryption-at-rest.html)。

1. 選擇 **Continue** (繼續)。

1. 在 **Scheduling of Modifications (修改排程)** 中，選擇 **Apply immediately (立即套用)**。如果您在**下一個排定的維護時段選擇套用**，您的執行個體會忽略此設定，並立即啟用績效詳情。

1. 選擇 **Modify instance (修改執行個體)**。

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

使用 `create-db-instance`或 `modify-db-instance` AWS AWS CLI 命令時，您可以透過指定 來啟用績效詳情`--enable-performance-insights`，或透過指定 來停用它`--no-enable-performance-insights`。

下列程序說明如何使用 AWS AWS CLI啟用或停用資料庫執行個體的績效詳情。



**AWS AWS CLI 指示**

呼叫 `modify-db-instance` AWS AWS CLI 命令並提供下列值：
+ `--db-instance-identifer` — 資料庫執行個體的名稱
+ `--enable-performance-insights` 以啟用或 `--no-enable-performance-insights` 以停用

**Example**  
下列範例會啟用 的績效詳情`sample-db-instance`：  

```
aws docdb modify-db-instance \
    --db-instance-identifier sample-db-instance \
    --enable-performance-insights
```

```
aws docdb modify-db-instance ^
    --db-instance-identifier sample-db-instance ^
    --enable-performance-insights
```

------

# 設定績效詳情的存取政策
<a name="performance-insights-policies"></a>

若要存取績效詳情，您必須具有來自 AWS Identity and Access Management (IAM) 的適用許可。您可以使用下列選項授予存取權：
+ 將 `AmazonRDSPerformanceInsightsReadOnly` 受管政策連接到許可集或角色。
+ 建立自訂 IAM 政策，並將其連接至許可集或角色。

此外，如果您在開啟績效詳情時指定客戶受管金鑰，請確保您帳戶中的使用者具備 KMS 金鑰的 `kms:Decrypt` 和 `kms:GenerateDataKey` 許可。

**注意**  
對於使用 AWS KMS 金鑰和安全群組管理encryption-at-rest，Amazon DocumentDB 會利用與 [Amazon RDS](https://aws.amazon.com/rds) 共用的操作技術。

## 將 AmazonRDSPerformanceInsightsReadOnly 政策連接至 IAM 主體
<a name="USER_PerfInsights.access-control.IAM-principal"></a>

`AmazonRDSPerformanceInsightsReadOnly` 是一種 AWS受管政策，可授予 Amazon DocumentDB Performance Insights API 所有唯讀操作的存取權。目前，此 API 中的所有操作都是唯讀操作。若您將 `AmazonRDSPerformanceInsightsReadOnly` 連接至許可集或角色，收件人可使用績效詳情搭配其他主控台功能。

## 建立績效詳情的自訂 IAM 政策
<a name="USER_PerfInsights.access-control.custom-policy"></a>

對於沒有 `AmazonRDSPerformanceInsightsReadOnly` 政策提供的使用者，您可以建立或修改由使用者管理的 IAM 政策來授予績效詳情的存取權。當您將政策連接到許可集或角色時，收件人可以使用績效詳情。

**建立自訂政策**

1. 前往 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在導覽窗格中，選擇**政策**。

1. 選擇 **Create policy** (建立政策)。

1. 在 **Create Policy (建立政策)** 頁面上，選擇 JSON 標籤。

1. 複製並貼上下列文字，將 *us-east-1* 取代為您的 AWS 區域名稱，並將 *111122223333* 取代為您的客戶帳戶號碼。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "rds:DescribeDBInstances",
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": "rds:DescribeDBClusters",
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": "pi:DescribeDimensionKeys",
               "Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/*"
           },
           {
               "Effect": "Allow",
               "Action": "pi:GetDimensionKeyDetails",
               "Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/*"
           },
           {
               "Effect": "Allow",
               "Action": "pi:GetResourceMetadata",
               "Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/*"
           },
           {
               "Effect": "Allow",
               "Action": "pi:GetResourceMetrics",
               "Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/*"
           },
           {
               "Effect": "Allow",
               "Action": "pi:ListAvailableResourceDimensions",
               "Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/*"
           },
           {
               "Effect": "Allow",
               "Action": "pi:ListAvailableResourceMetrics",
               "Resource": "arn:aws:pi:us-east-1:111122223333:metrics/rds/*"
           }
       ]
   }
   ```

------

1. 選擇 **Review policy** (檢閱政策)。

1. 為政策提供名稱並選擇性輸入描述，然後選擇 **Create policy (建立政策)**。

現在您可以將政策連接到許可集或角色。以下程序假設您已有基於此用途使用的使用者。

**將政策連接至使用者**

1. 在以下網址開啟 IAM 主控台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在導覽窗格中，選擇 **Users** (使用者)。

1. 從清單中選擇現有的使用者。
**重要**  
若要使用績效詳情，請確定除了自訂政策之外，您還可以存取 Amazon DocumentDB。例如，**AmazonDocDBReadOnlyAccess** 預先定義的政策提供 Amazon DocDB.For詳細資訊，請參閱[使用政策管理存取權](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAM.html#security_iam_access-manage)。

1. 在 **Summary** (摘要) 頁面上，選擇 **Add permissions** (新增許可)。

1. 選擇 **Attach existing policies directly** (直接連接現有政策)。對於 **Search (搜尋)**，請輸入政策名稱的前幾個字母，如下所示。  
![\[選擇一個政策\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/performance-insights/pi-add-permissions.png)

1. 選擇您的政策，然後選擇 **Next: Review (下一步：檢閱)**。

1. 選擇 **Add permissions** (新增許可)。

## 設定 Performance Insights AWS KMS 的政策
<a name="USER_PerfInsights.access-control.cmk-policy"></a>

Performance Insights 使用 AWS KMS key 來加密敏感資料。當您透過 API 或主控台啟用績效詳情時，可使用下列選項：
+ 選擇預設值 AWS 受管金鑰。

  Amazon DocumentDB 會將 AWS 受管金鑰 用於新的資料庫執行個體。Amazon DocumentDB 會 AWS 受管金鑰 為 AWS 您的帳戶建立 。每個 AWS 區域的 Amazon DocumentDB AWS 受管金鑰 AWS 帳戶都有不同的 。
+ 選擇客戶受管金鑰。

  如果您指定客戶受管金鑰，則您帳戶中呼叫績效詳情 API 的使用者需要 KMS 金鑰的 `kms:Decrypt` 和 `kms:GenerateDataKey` 許可。您可以透過 IAM 政策設定這些許可。不過，我們建議您透過 KMS 金鑰政策來管理這些許可。如需詳細資訊，請參閱[在 AWS KMS 中使用金鑰政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)。

**Example**  
下列範例金鑰政策說明如何將陳述式新增至 KMS 金鑰政策。這些陳述式允許存取績效詳情。視您使用 的方式而定 AWS KMS，您可能想要變更一些限制。在將陳述式新增至您的政策之前，請先移除所有註解。

# 使用績效詳情儀表板來分析指標
<a name="performance-insights-analyzing"></a>

績效詳情儀表板包含資料庫效能資訊，可協助您分析效能問題並對其進行故障排除。在主儀表板頁面上，您可以檢視資料庫載入 （資料庫載入） 的相關資訊。您可以依等待狀態或查詢等維度來「配量」資料庫負載。

**Topics**
+ [績效詳情儀表板概觀](performance-insights-dashboard-overview.md)
+ [開啟績效詳情儀表板](performance-insights-dashboard-opening.md)
+ [依等待狀態分析資料庫負載](performance-insights-analyzing-db-load.md)
+ [熱門查詢索引標籤概觀](performance-insights-top-queries.md)
+ [在資料庫負載圖表上放大](performance-insights-zoom-db-load.md)

# 績效詳情儀表板概觀
<a name="performance-insights-dashboard-overview"></a>

儀表板是與績效詳情進行互動的最簡單方式。下列範例顯示 Amazon DocumentDB 執行個體的儀表板。根據預設，績效詳情儀表板會顯示過去一小時內的資料。

![\[Performance Insights 儀表板顯示 Amazon DocumentDB 執行個體的 CPU 使用率和資料庫負載隨時間的變化。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/performance-insights/overview-dashboard.png)


儀表板分成下列部分：

1. **計數器指標** – 顯示特定效能計數器指標的資料。

1. **資料庫負載** – 顯示資料庫負載與資料庫執行個體容量的比較，以**最大 vCPU** 行表示。

1.  **最高維**度 - 顯示造成資料庫負載的最高維度。這些維度包括 `waits`、`queries`、`databases`、 `hosts`和 `applications`。

**Topics**
+ [計數器指標圖表](#performance-insights-overview-metrics)
+ [資料庫負載圖表](#performance-insights-overview-db-load-chart)
+ [最高維度表格](#performance-insights-overview-top-dimensions)

## 計數器指標圖表
<a name="performance-insights-overview-metrics"></a>

您可以使用計數器指標來自訂績效詳情儀表板，以包含高達 10 個其它圖表。這些圖表顯示數十種作業系統指標的選擇。您可以將此資訊與資料庫負載相互關聯，以協助識別和分析效能問題。

**Counter Metrics** (計數器指標) 圖表顯示效能計數器的資料。

![\[計數器指標圖表顯示 CPU 使用率隨時間的變化。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/performance-insights/counter-metrics.png)


若要變更效能計數器，請選擇**管理指標**。您可以選取多個**作業系統指標**，如下列螢幕擷取畫面所示。若要查看任何指標的詳細資訊，請將游標移到指標名稱上。

![\[Performance Insights 儀表板指標選擇介面與作業系統指標選項。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/performance-insights/overview-os-metrics.png)


## 資料庫負載圖表
<a name="performance-insights-overview-db-load-chart"></a>

**資料庫負載**圖表顯示資料庫活動與執行個體容量的比較，如**最大 vCPU** 行所表示。依預設，堆疊折線圖以每個時間單位的平均作用中工作階段數來表示資料庫負載。資料庫負載依等待狀態切割 (分組)。

![\[資料庫負載圖表顯示一段時間內的平均作用中工作階段，CPU 用量在接近尾端時爆增。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/performance-insights/database-load.png)


**資料庫負載依維度配量**  
您可以選擇將負載顯示為作用中工作階段 (依任何支援維度分組)。下圖顯示 Amazon DocumentDB 執行個體的維度。

![\[圖表顯示下拉式清單中顯示具有各種「依配量」選項的資料庫載入。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/performance-insights/database-load-sliced.png)


**維度項目的資料庫負載詳細資訊**  
若要查看有關維度內資料庫負載項目的詳細資訊，請將游標移到項目名稱上。下圖顯示查詢陳述式的詳細資訊。

![\[長條圖顯示資料庫載入，並在將滑鼠游標暫留在項目名稱上時顯示其他詳細資訊。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/performance-insights/database-load-details.png)


若要以圖例查看在所選時段內任何項目的詳細資訊，請將游標移到該項目上。

![\[長條圖顯示資料庫載入，並在將游標暫留在長條上時顯示其他詳細資訊。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/performance-insights/database-load-hover.png)


## 最高維度表格
<a name="performance-insights-overview-top-dimensions"></a>

**最高維度資料表**會依不同維度分割資料庫負載。維度是資料庫負載各種特性的類別或「配量依據」。如果維度是查詢，**則熱門查詢**會顯示對資料庫負載貢獻最大的查詢陳述式。

選擇下列任一維度索引標籤：

![\[最高查詢維度索引標籤顯示兩個最高查詢。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/performance-insights/top-dimensions.png)


下表提供每個索引標籤的簡短描述。


| Tab | Description | 
| --- | --- | 
|  最高等待  |   資料庫後端正在等待的事件  | 
|  熱門查詢  |  目前正在執行的查詢陳述式  | 
|  最高主機  |  連線用戶端的主機 IP 和連接埠  | 
|  最高資料庫  |  用戶端連線的資料庫名稱  | 
|  最高應用程式  |  連線至資料庫的應用程式名稱  | 

若要了解如何使用**熱門查詢索引標籤來分析查詢**，請參閱 [熱門查詢索引標籤概觀](performance-insights-top-queries.md)。

# 開啟績效詳情儀表板
<a name="performance-insights-dashboard-opening"></a>

**若要在 AWS 管理主控台中檢視績效詳情儀表板，請使用下列步驟：**

1. 在 https：//[https://console.aws.amazon.com/docdb/](https://console.aws.amazon.com/docdb/home#performance-insights) 開啟績效詳情主控台。

1. 選擇資料庫執行個體。會顯示該 Amazon DocumentDB 執行個體的績效詳情儀表板。

   對於已啟用績效詳情的 Amazon DocumentDB 執行個體，您也可以選擇執行個體清單中的**工作階段**項目來存取儀表板。在 **Current activity (目前活動)** 中，**Sessions (工作階段)** 項目顯示了過去五分鐘內平均作用中工作階段的資料庫負載。負載以進度條圖形的方式顯示。當長條為空時，執行個體會閒置。隨著負載增加，進度條會填入藍色。當負載通過執行個體類別上的虛擬 CPUs vCPUs) 數量時，長條會變成紅色，表示潛在的瓶頸。  
![\[叢集頁面顯示 Amazon DocumentDB 區域叢集，以及每個叢集執行個體的 CPU 和目前活動。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/performance-insights/opening-clusters.png)

1. (選用) 選取右上角中的按鈕，以選擇不同的時間間隔。例如，若要將間隔變更為 1 小時，請選取 **1 小時**。  
![\[時間間隔按鈕範圍從五分鐘到一週。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/performance-insights/opening-time.png)

   在下列螢幕擷取畫面中，資料庫載入間隔為 1 小時。  
![\[長條圖顯示平均作用中工作階段中測量的資料庫負載。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/performance-insights/opening-db-load.png)

1. 若要自動重新整理資料，請啟用**自動重新整理**。  
![\[已啟用自動重新整理按鈕，顯示在時間間隔按鈕旁。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/performance-insights/opening-auto-refresh.png)

   績效詳情儀表板會自動以新資料進行重新整理。重新整理速度取決於顯示的資料量：
   + 5 分鐘的資料每 5 秒重新整理一次。
   + 1 小時內的資料每分鐘重新整理一次。
   + 5 小時內的資料每分鐘重新整理一次。
   + 24 小時內的資料每 5 分鐘重新整理一次。
   + 1 週內的資料每小時重新整理。

# 依等待狀態分析資料庫負載
<a name="performance-insights-analyzing-db-load"></a>

如果**資料庫負載 （資料庫負載）** 圖表顯示瓶頸，您可以找出負載的來源。若要這麼做，請查看**資料庫負載**圖表下的最高負載項目表格。選擇特定項目，例如查詢或應用程式，以深入了解該項目並查看其詳細資訊。

依等待和熱門查詢分組的資料庫負載通常會提供效能問題的最深入見解。根據等待分組的資料庫負載顯示該資料庫中是否有任何資源或正在發生的瓶頸。在此情況下，頂端載入項目資料表的頂端**查詢**索引標籤會顯示哪些查詢正在驅動該載入。

診斷效能問題的典型工作流程如下：

1. 檢閱**資料庫負載**圖表並查看是否有任何資料庫負載超越**最高 CPU** 線的情況。

1. 若有，請查看**資料庫負載**圖表，並找出哪一個或那幾個等待狀態是主因。

1. 透過查看頂端載入項目資料表上的熱門查詢索引標籤對這些等待狀態貢獻最大，**來識別導致載入的摘要查詢**。您可以依**「等待載入 (AAS)」**欄來識別這些項目。

1. 在**熱門查詢**索引標籤中選擇其中一個摘要查詢來展開查詢，並查看由其構成的子查詢。

您也可以分別選取**最高主機或最高應用程式，查看哪些主機**或**應用程式**造成最大負載。應用程式名稱是在 Amazon DocumentDB 執行個體的連線字串中指定。 `Unknown`表示未指定應用程式欄位。

例如，在下列儀表板中，**CPU** 會等待大部分資料庫負載的帳戶。在 最高查詢 下選取**最高查詢** 將限制資料庫負載圖表的範圍，以專注於選取查詢所貢獻的最大負載。

![\[資料庫負載圖表顯示 CPU 用量尖峰。對應的熱門查詢索引標籤會顯示造成等待狀態最多的查詢。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/performance-insights/db-load-1.png)


![\[資料庫負載圖表顯示查詢的 CPU 用量尖峰，造成等待狀態最多。對應的熱門查詢索引標籤會顯示查詢的子查詢。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/performance-insights/db-load-2.png)


# 熱門查詢索引標籤概觀
<a name="performance-insights-top-queries"></a>

根據預設，**頂端查詢**索引標籤會顯示對資料庫載入貢獻最大的查詢。您可以分析查詢文字，以協助調整查詢。

**Topics**
+ [查詢摘要](#performance-insights-top-queries-digests)
+ [依等待分組的負載 (AAS)](#performance-insights-top-queries-aas)
+ [檢視詳細查詢資訊](#performance-insights-top-queries-query-info)
+ [存取陳述式查詢文字](#performance-insights-top-queries-accessing-text)
+ [檢視和下載陳述式查詢文字](#performance-insights-top-queries-viewing-downloading)

## 查詢摘要
<a name="performance-insights-top-queries-digests"></a>

*查詢摘要*是多個實際查詢的複合，這些查詢在結構上類似，但可能有不同的常值。摘要中，問號會取代硬式編碼值。例如，查詢摘要可能如下所示：

```
{"find":"customerscollection","filter":{"FirstName":"?"},"sort":{"key":{"$numberInt":"?"}},"limit":{"$numberInt":"?"}}
```

此摘要可能包含下列子查詢：

```
{"find":"customerscollection","filter":{"FirstName":"Karrie"},"sort":{"key":{"$numberInt":"1"}},"limit":{"$numberInt":"3"}}
{"find":"customerscollection","filter":{"FirstName":"Met"},"sort":{"key":{"$numberInt":"1"}},"limit":{"$numberInt":"3"}}
{"find":"customerscollection","filter":{"FirstName":"Rashin"},"sort":{"key":{"$numberInt":"1"}},"limit":{"$numberInt":"3"}}
```

若要查看摘要中的常值查詢陳述式，請選取查詢，然後選擇加號 (`+`)。在下列螢幕擷取畫面中，所選查詢為摘要。

![\[頂端查詢資料表顯示已擴展的查詢摘要，並選取一個子查詢。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/performance-insights/top-queries-literal.png)


**注意**  
查詢摘要會將類似的查詢陳述式分組，但不會修訂敏感資訊。

## 依等待分組的負載 (AAS)
<a name="performance-insights-top-queries-aas"></a>

在**最高查詢**中，**依等待載入 (AAS)** 欄說明與每個最高載入項目相關聯的資料庫載入百分比。此欄會依目前在**資料庫負載圖表中選取的任何分組來反映該項目的負載**。例如，您可以依等待狀態將 **DB load** (資料庫負載) 圖表分組。在此情況下，**根據等待列出資料庫負載**列較大且分段，並以顏色為代碼來顯示該查詢所帶來的指定等待狀態程度。這也會顯示哪些等待狀態會影響選取的查詢。

![\[長條圖顯示依 CPU、IO 和閂鎖等待狀態分組的資料庫負載。對應的資料表會根據等待的負載顯示最熱門的查詢。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/performance-insights/top-queries-aas.png)


## 檢視詳細查詢資訊
<a name="performance-insights-top-queries-query-info"></a>

在**頂端查詢**表格中，您可以開啟*摘要陳述*式來檢視其資訊。資訊會顯示在底部窗格中。

![\[上方查詢表格顯示選取的查詢陳述式及其查詢資訊如下。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/performance-insights/top-queries-detailed.png)


下列識別符 (IDs) 類型與查詢陳述式相關聯：

1. **支援查詢 ID** – 查詢 ID 的雜湊值。此值僅適用於使用 AWS Support 時參考查詢 ID。 AWS Support 無法存取您的實際查詢 IDs和查詢文字。

1. **支援摘要 ID** – 摘要 ID 的雜湊值。此值僅適用於使用 AWS Support 時參考摘要 ID。 AWS Support 無法存取您的實際摘要 IDs 和查詢文字。

## 存取陳述式查詢文字
<a name="performance-insights-top-queries-accessing-text"></a>

根據預設，**熱門查詢**表格中的每一列都會為每個查詢陳述式顯示 500 個位元組的查詢文字。當摘要陳述式超過 500 個位元組時，您可以在績效詳情儀表板中開啟陳述式來檢視更多文字。在此情況下，所顯示查詢的長度上限為 1 KB。如果您檢視完整的查詢陳述式，您也可以選擇**下載**。

## 檢視和下載陳述式查詢文字
<a name="performance-insights-top-queries-viewing-downloading"></a>

在績效詳情儀表板中，您可以檢視或下載查詢文字。

**在績效詳情儀表板中檢視更多查詢文字**

1. 開啟 Amazon DocumentDB 主控台，網址為：https：//[https://console.aws.amazon.com/docdb/](https://console.aws.amazon.com/docdb/) 

1. 在導覽窗格中，選擇 **Performance Insights** (績效詳情)。

1. 選擇資料庫執行個體。顯示該資料庫執行個體的績效詳情儀表板。

   文字大於 500 個位元組的查詢陳述式看起來如下圖所示：  
![\[選取子查詢的熱門查詢表。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/performance-insights/top-queries-statement.png)

1. 檢查查詢資訊區段以檢視更多查詢文字。  
![\[查詢資訊區段顯示所選查詢的完整文字。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/performance-insights/top-queries-query-text.png)

績效詳情儀表板最多可顯示每個完整查詢陳述式的 1 KB。

**注意**  
若要複製或下載查詢陳述式，請停用任何快顯封鎖程式。

# 在資料庫負載圖表上放大
<a name="performance-insights-zoom-db-load"></a>

您可以使用績效詳情使用者界面的其他功能來協助並分析效能資料。

**長按拖曳來放大**  
在績效詳情界面中，您可以選擇負載圖表的一小部分，並放大詳細資訊。

![\[長條圖顯示資料庫負載，其中一部分會反白顯示以放大。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/performance-insights/pi-zoom-1.png)


若要放大小部分的負載表格，選擇開始時間並拖曳到您想要的時間範圍結束時間。您這麼做的話，所選區域將有反白顯示。當您放開滑鼠時，負載圖表會放大所選區域，並重新計算**最高*項目***表。

![\[資料庫負載長條圖顯示放大部分，下方有對應的最高等待資料表。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/performance-insights/pi-zoom-2.png)


# 使用績效詳情 API 來擷取指標
<a name="performance-insights-metrics"></a>

在啟用績效詳情時，API 會提供對執行個體效能的可見性。Amazon CloudWatch Logs 提供授權來源，以用於 AWS 服務的付費監控指標。

績效詳情提供以平均作用中工作階段 (AAS) 評估的資料庫負載特定網域檢視。此指標在 API 消費者看來是二維時間序列資料集。資料的時間維度提供查詢的時間範圍內各時間點的資料庫負載資料。每個時間點會根據請求的維度來分解整體負載，例如 `Query`、`Wait-state`、`Application`、或者 `Host`，在該時間點所測得。

Amazon DocumentDB Performance Insights 會監控您的 Amazon DocumentDB 資料庫執行個體，讓您可以分析資料庫效能並進行疑難排解。檢視績效詳情資料的一個方法就是使用 AWS 管理主控台。績效詳情也提供公有 API，讓您可以查詢自己的資料。您可以使用 API 執行下列動作：
+ 將資料卸載至資料庫
+ 將績效詳情資料新增至現有監控儀表板
+ 建置監控工具

若要使用績效詳情 API，請在其中一個 Amazon DocumentDB 執行個體上啟用績效詳情。如需啟用績效詳情的相關資訊，請參閱 [啟用和停用績效詳情](performance-insights-enabling.md)。如需績效詳情 API 的相關詳細資訊，請參閱 [ 績效詳情 API 參考](https://docs.aws.amazon.com/performance-insights/latest/APIReference/Welcome.html)。

績效詳情 API 提供下列操作。


****  

|  績效詳情動作  |  AWS CLI 命令  |  Description  | 
| --- | --- | --- | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DescribeDimensionKeys.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DescribeDimensionKeys.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/describe-dimension-keys.html](https://docs.aws.amazon.com/cli/latest/reference/pi/describe-dimension-keys.html)  |  針對特定時段，擷取其指標的前 N 個維度金鑰。  | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetDimensionKeyDetails.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetDimensionKeyDetails.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/get-dimension-key-details.html](https://docs.aws.amazon.com/cli/latest/reference/pi/get-dimension-key-details.html)  |  擷取資料庫執行個體或資料來源之指定維度群組的屬性。例如，如果您指定查詢 ID，而且有可用的維度詳細資訊， 會`GetDimensionKeyDetails`擷取與此 ID `db.query.statement`相關聯的維度全文。此操作非常有用，因為 `GetResourceMetrics`和 `DescribeDimensionKeys` 不支援擷取大型查詢陳述式文字。  | 
| [GetResourceMetadata](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetResourceMetadata.html) |  [https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metadata.html](https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metadata.html)  |  檢索不同功能的中繼資料。例如，中繼資料可能指出特定資料庫執行個體上某項功能已開啟或關閉。  | 
|  [https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetResourceMetrics.html](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_GetResourceMetrics.html)  |  [https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metrics.html](https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metrics.html)  |  擷取一組資料來源某個時段的績效詳情指標。您可以提供特定維度群組和維度，以及為每個群組提供彙總和篩選條件。  | 
| [ListAvailableResourceDimensions](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_ListAvailableResourceDimensions.html) |  [https://docs.aws.amazon.com/cli/latest/reference/pi/list-available-resource-dimensions.html](https://docs.aws.amazon.com/cli/latest/reference/pi/list-available-resource-dimensions.html)  |  檢索指定執行個體上每個指定指標類型可查詢的維度。  | 
| [ListAvailableResourceMetrics](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_ListAvailableResourceMetrics.html) |  [https://docs.aws.amazon.com/cli/latest/reference/pi/list-available-resource-metrics.html](https://docs.aws.amazon.com/cli/latest/reference/pi/list-available-resource-metrics.html)  |  檢索可為指定資料庫執行個體查詢的指定指標類型中所有可用的指標。  | 

**Topics**
+ [AWS CLI for Performance Insights](#performance-insights-metrics-CLI)
+ [擷取時間序列指標](#performance-insights-metrics-time-series)
+ [AWS CLI 績效詳情的範例](#performance-insights-metrics-api-examples)

## AWS CLI for Performance Insights
<a name="performance-insights-metrics-CLI"></a>

您可以使用 AWS CLI檢視績效詳情資料。您可以透過在命令列輸入以下內容來檢視績效詳情 AWS CLI 命令的說明。

```
aws pi help
```

如果您尚未 AWS CLI 安裝 ，請參閱*AWS CLI 《 使用者指南*》中的[安裝 AWS 命令列界面](https://docs.aws.amazon.com/cli/latest/userguide/installing.html)，以取得安裝它的相關資訊。

## 擷取時間序列指標
<a name="performance-insights-metrics-time-series"></a>

`GetResourceMetrics` 操作會從績效詳情資料中擷取一或多個時間時間序列指標。`GetResourceMetrics` 需要指標和時間間隔，並傳回含資料點清單的回應。

例如， AWS 管理主控台 使用 `GetResourceMetrics` 填入**計數器指標**圖表和**資料庫負載**圖表，如下圖所示。

![\[計數器指標和資料庫負載圖表\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/performance-insights/perf-insights-api-charts.png)


`GetResourceMetrics` 傳回的所有指標，除 `db.load` 之外，皆為標準的時間序列指標。此指標會顯示在 **Database Load (資料庫負載)** 圖表中。`db.load` 指標與其他時間序列指標不同，因為您可以將它分為名為*維度*的子元件。在先前的影像中，`db.load` 已被細分，分組依據為組成 `db.load` 的等待狀態。

**注意**  
`GetResourceMetrics` 也可以傳回 `db.sampleload` 指標，但 `db.load` 指標適用於大部分情況。

如需 `GetResourceMetrics` 所傳回指標的相關資訊，請參閱[計數器指標的績效詳情](performance-insights-counter-metrics.md)。

這些指標支援下列計算：
+ 平均值 – 指標在一段時間內的平均值。將 `.avg` 附加至指標名稱。
+ 最小值 – 指標在一段時間內的最小值。將 `.min` 附加至指標名稱。
+ 最大值 – 指標在一段時間內的最大值。將 `.max` 附加至指標名稱。
+ 總和 – 指標值在一段時間內的總和。將 `.sum` 附加至指標名稱。
+ 取樣計數 – 在一段時間內收集指標的次數。將 `.sample_count` 附加至指標名稱。

例如，假設收集指標的時間為 300 秒 (5 分鐘)，且每分鐘收集一次指標。每分鐘的值為 1、2、3、4 和 5。在此情況下，會傳回下列計算：
+ 平均值 – 3
+ 最小值 – 1
+ 最大值 – 5
+ 總和 – 15
+ 取樣計數 – 5

如需使用 `get-resource-metrics` AWS CLI 命令的詳細資訊，請參閱 [https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metrics.html](https://docs.aws.amazon.com/cli/latest/reference/pi/get-resource-metrics.html)。

對於 `--metric-queries` 選項，請指定您要取得結果的一或多個查詢。每個查詢的組成為必要的 `Metric` 和選用的 `GroupBy` 及 `Filter` 參數。以下是 `--metric-queries` 選項規格的範例。

```
{
   "Metric": "string",
   "GroupBy": {
     "Group": "string",
     "Dimensions": ["string", ...],
     "Limit": integer
   },
   "Filter": {"string": "string"
     ...}
```

## AWS CLI 績效詳情的範例
<a name="performance-insights-metrics-api-examples"></a>

下列範例示範如何使用 AWS CLI for Performance Insights 的 。

**Topics**
+ [擷取計數器指標](#performance-insights-metrics-api-examples.CounterMetrics)
+ [擷取最高等待狀態的資料庫負載平均值](#performance-insights-metrics-api-examples.DBLoadAverage)
+ [擷取熱門查詢的資料庫負載平均值](#performance-insights-metrics-api-examples.topquery)
+ [擷取依查詢篩選的資料庫負載平均值](#performance-insights-metrics-api-examples.DBLoadAverageByQuery)

### 擷取計數器指標
<a name="performance-insights-metrics-api-examples.CounterMetrics"></a>

下列螢幕擷取畫面顯示 AWS 管理主控台中的兩個計數器指標圖表。

![\[計數器指標圖表。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/performance-insights/perf-insights-api-counters-charts.png)


下凸顯是如何蒐集 AWS 管理主控台 用來產生兩個計數器指標圖表的相同資料。

針對 Linux、macOS 或 Unix：

```
aws pi get-resource-metrics \
   --service-type DOCDB \
   --identifier db-ID \
   --start-time 2022-03-13T8:00:00Z \
   --end-time   2022-03-13T9:00:00Z \
   --period-in-seconds 60 \
   --metric-queries '[{"Metric": "os.cpuUtilization.user.avg"  },
                      {"Metric": "os.cpuUtilization.idle.avg"}]'
```

針對 Windows：

```
aws pi get-resource-metrics ^
   --service-type DOCDB ^
   --identifier db-ID ^
   --start-time 2022-03-13T8:00:00Z ^
   --end-time   2022-03-13T9:00:00Z ^
   --period-in-seconds 60 ^
   --metric-queries '[{"Metric": "os.cpuUtilization.user.avg"  },
                      {"Metric": "os.cpuUtilization.idle.avg"}]'
```

您也可以透過指定 `--metrics-query` 選項的檔案來提高命令的可讀性。以下範例會將名為 query.json 的檔案用於此選項。此檔案的內容如下。

```
[
    {
        "Metric": "os.cpuUtilization.user.avg"
    },
    {
        "Metric": "os.cpuUtilization.idle.avg"
    }
]
```

執行下列命令來使用檔案。

針對 Linux、macOS 或 Unix：

```
aws pi get-resource-metrics \
   --service-type DOCDB \
   --identifier db-ID \
   --start-time 2022-03-13T8:00:00Z \
   --end-time   2022-03-13T9:00:00Z \
   --period-in-seconds 60 \
   --metric-queries file://query.json
```

針對 Windows：

```
aws pi get-resource-metrics ^
   --service-type DOCDB ^
   --identifier db-ID ^
   --start-time 2022-03-13T8:00:00Z ^
   --end-time   2022-03-13T9:00:00Z ^
   --period-in-seconds 60 ^
   --metric-queries file://query.json
```

先前的範例會為選項指定下列值：
+ `--service-type` – `DOCDB`適用於 Amazon DocumentDB
+ `--identifier`– 資料執行個體的資源 ID
+ `--start-time` 和 `--end-time` – 要查詢期間的 ISO 8601 `DateTime` 值，支援多種格式

它會查詢一小時的時間範圍：
+ `--period-in-seconds`–`60` 適用於每分鐘的查詢
+ `--metric-queries`– 兩個查詢的陣列，一個指標剛好一個查詢。

  此指標名稱會使用點將指標分類在實用的類別，其中最後一個元素則做為函數。在此範例中，此函數是每個查詢的 `avg`。如同 Amazon CloudWatch，支援的函數是 `min`、`max`、`total` 和 `avg`。

回應看起來類似以下的內容。

```
{
    "AlignedStartTime": "2022-03-13T08:00:00+00:00",
    "AlignedEndTime": "2022-03-13T09:00:00+00:00",
    "Identifier": "db-NQF3TTMFQ3GTOKIMJODMC3KQQ4",
    "MetricList": [
        {
            "Key": {
                "Metric": "os.cpuUtilization.user.avg"
            },
            "DataPoints": [
                {
                    "Timestamp": "2022-03-13T08:01:00+00:00", //Minute1
                    "Value": 3.6
                },
                {
                    "Timestamp": "2022-03-13T08:02:00+00:00", //Minute2
                    "Value": 2.6
                },
                //.... 60 datapoints for the os.cpuUtilization.user.avg metric
        {
            "Key": {
                "Metric": "os.cpuUtilization.idle.avg"
            },
            "DataPoints": [
                {
                    "Timestamp": "2022-03-13T08:01:00+00:00",
                    "Value": 92.7
                },
                {
                    "Timestamp": "2022-03-13T08:02:00+00:00",
                    "Value": 93.7
                },
                //.... 60 datapoints for the os.cpuUtilization.user.avg metric 
            ]
        }
    ] //end of MetricList
} //end of response
```

回應具有 `Identifier`、`AlignedStartTime` 和 `AlignedEndTime`。`--period-in-seconds` 值為 `60`，開始和結束時間皆一致使用分鐘。如果 `--period-in-seconds` 是 `3600`，開始和結束時間則會一致使用小時。

回應中的 `MetricList` 擁有許多項目，每個都包含 `Key` 和 `DataPoints` 項目。每個 `DataPoint` 都有 `Timestamp` 和 `Value`。每個 `Datapoints` 清單有 60 個資料點，因為查詢是適用於一小時中的每分鐘資料，內含 `Timestamp1/Minute1`、`Timestamp2/Minute2` 等，最多可達 `Timestamp60/Minute60`。

因為此查詢是適用於兩個不同的計數器指標，回應 `MetricList` 中會有兩個元素。

### 擷取最高等待狀態的資料庫負載平均值
<a name="performance-insights-metrics-api-examples.DBLoadAverage"></a>

下列範例與 AWS 管理主控台 用來產生堆疊區域折線圖的查詢相同。此範例會擷取最後一個小時`db.load.avg`的 根據前七個等待狀態分割負載的 。此命令與 [擷取計數器指標](#performance-insights-metrics-api-examples.CounterMetrics) 中的命令相同。然而，查詢 query.json 檔案有以下內容。

```
[
    {
        "Metric": "db.load.avg",
        "GroupBy": { "Group": "db.wait_state", "Limit": 7 }
    }
]
```

執行下列命令。

針對 Linux、macOS 或 Unix：

```
aws pi get-resource-metrics \
   --service-type DOCDB \
   --identifier db-ID \
   --start-time 2022-03-13T8:00:00Z \
   --end-time   2022-03-13T9:00:00Z \
   --period-in-seconds 60 \
   --metric-queries file://query.json
```

針對 Windows：

```
aws pi get-resource-metrics ^
   --service-type DOCDB ^
   --identifier db-ID ^
   --start-time 2022-03-13T8:00:00Z ^
   --end-time   2022-03-13T9:00:00Z ^
   --period-in-seconds 60 ^
   --metric-queries file://query.json
```

此範例會指定 的指標，`db.load.avg`以及前七大等待狀態`GroupBy`的 。如需此範例有效值的詳細資訊，請參閱*績效詳情 API 參考*中的[DimensionGroup](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DimensionGroup.html)。

回應看起來類似以下的內容。

```
{
    "AlignedStartTime": "2022-04-04T06:00:00+00:00",
    "AlignedEndTime": "2022-04-04T06:15:00+00:00",
    "Identifier": "db-NQF3TTMFQ3GTOKIMJODMC3KQQ4",
    "MetricList": [
        {//A list of key/datapoints
            "Key": {
                //A Metric with no dimensions. This is the total db.load.avg
                "Metric": "db.load.avg"
            },
            "DataPoints": [
                //Each list of datapoints has the same timestamps and same number of items
                {
                    "Timestamp": "2022-04-04T06:01:00+00:00",//Minute1
                    "Value": 0.0
                },
                {
                    "Timestamp": "2022-04-04T06:02:00+00:00",//Minute2
                    "Value": 0.0
                },
                //... 60 datapoints for the total db.load.avg key
                ]
        },
        {
            "Key": {
                //Another key. This is db.load.avg broken down by CPU
                "Metric": "db.load.avg",
                "Dimensions": {
                    "db.wait_state.name": "CPU"
                }
            },
            "DataPoints": [
                {
                    "Timestamp": "2022-04-04T06:01:00+00:00",//Minute1
                    "Value": 0.0
                },
                {
                    "Timestamp": "2022-04-04T06:02:00+00:00",//Minute2
                    "Value": 0.0
                },
                //... 60 datapoints for the CPU key
            ]
        },//... In total we have 3 key/datapoints entries, 1) total, 2-3) Top Wait States
    ] //end of MetricList
} //end of response
```

在此回應中， 中有三個項目`MetricList`。總計 有一個項目`db.load.avg`，根據前三個等待狀態之一`db.load.avg`分割的 有三個項目。由於有分組維度 （與第一個範例不同），因此指標的每個分組都必須有一個索引鍵。每個指標不能只有一個索引鍵，如同基本計數器指標使用案例。

### 擷取熱門查詢的資料庫負載平均值
<a name="performance-insights-metrics-api-examples.topquery"></a>

下列範例`db.wait_state`依前 10 個查詢陳述式分組。查詢陳述式有兩種不同的群組：
+ `db.query` – 完整的查詢陳述式，例如 `{"find":"customers","filter":{"FirstName":"Jesse"},"sort":{"key":{"$numberInt":"1"}}}`
+ `db.query_tokenized` – 字符化查詢陳述式，例如 `{"find":"customers","filter":{"FirstName":"?"},"sort":{"key":{"$numberInt":"?"}},"limit":{"$numberInt":"?"}}`

分析資料庫效能時，將僅因參數而不同的查詢陳述式視為一個邏輯項目非常有用。因此，您可以在查詢時使用 `db.query_tokenized`。不過，特別是當您對 感興趣時`explain()`，有時使用參數檢查完整的查詢陳述式會比較有用。字符化查詢與完整查詢之間存在父子關係，多個完整查詢 （子） 分組在相同的字符化查詢 （父） 下。

此範例中的命令與 [擷取最高等待狀態的資料庫負載平均值](#performance-insights-metrics-api-examples.DBLoadAverage) 中的命令類似。然而，查詢 query.json 檔案有以下內容。

```
[
    {
        "Metric": "db.load.avg",
        "GroupBy": { "Group": "db.query_tokenized", "Limit": 10 }
    }
]
```

以下範例使用 `db.query_tokenized`。

針對 Linux、macOS 或 Unix：

```
aws pi get-resource-metrics \
   --service-type DOCDB \
   --identifier db-ID \
   --start-time 2022-03-13T8:00:00Z \
   --end-time   2022-03-13T9:00:00Z \
   --period-in-seconds 3600 \
   --metric-queries file://query.json
```

針對 Windows：

```
aws pi get-resource-metrics ^
   --service-type DOCDB ^
   --identifier db-ID ^
   --start-time 2022-03-13T8:00:00Z ^
   --end-time   2022-03-13T9:00:00Z  ^
   --period-in-seconds 3600 ^
   --metric-queries file://query.json
```

此範例查詢時間超過 1 小時，且間隔為一分鐘period-in-seconds

此範例會指定 的指標，`db.load.avg`以及前七大等待狀態`GroupBy`的 。如需此範例有效值的詳細資訊，請參閱*績效詳情 API 參考*中的[DimensionGroup](https://docs.aws.amazon.com/performance-insights/latest/APIReference/API_DimensionGroup.html)。

回應看起來類似以下的內容。

```
{
    "AlignedStartTime": "2022-04-04T06:00:00+00:00",
    "AlignedEndTime": "2022-04-04T06:15:00+00:00",
    "Identifier": "db-NQF3TTMFQ3GTOKIMJODMC3KQQ4",
    "MetricList": [
        {//A list of key/datapoints
            "Key": {
                "Metric": "db.load.avg"
            },
            "DataPoints": [
                //... 60 datapoints for the total db.load.avg key
                ]
        },
               {
            "Key": {//Next key are the top tokenized queries
                "Metric": "db.load.avg",
                "Dimensions": {
                    "db.query_tokenized.db_id": "pi-1064184600",
                    "db.query_tokenized.id": "77DE8364594EXAMPLE",
                    "db.query_tokenized.statement": "{\"find\":\"customers\",\"filter\":{\"FirstName\":\"?\"},\"sort\":{\"key\":{\"$numberInt\":\"?\"}},\"limit\"
:{\"$numberInt\":\"?\"},\"$db\":\"myDB\",\"$readPreference\":{\"mode\":\"primary\"}}"
                }
            },
            "DataPoints": [
            //... 60 datapoints 
            ]
        },
        // In total 11 entries, 10 Keys of top tokenized queries, 1 total key 
    ] //End of MetricList
} //End of response
```

此回應在 中有 11 個項目 `MetricList`（總計 1 個，最多 10 個字符化查詢），每個項目每小時 24 個`DataPoints`。

對於字符化查詢，每個維度清單中有三個項目：
+ `db.query_tokenized.statement` – 字符化查詢陳述式。
+ `db.query_tokenized.db_id ` – Performance Insights 為您產生的合成 ID。此範例會傳回 `pi-1064184600` 合成 ID。
+ `db.query_tokenized.id`– 績效詳情中查詢的 ID。

  在 中 AWS 管理主控台，此 ID 稱為支援 ID。其名稱為這個，因為 ID 是 AWS Support 可以檢查的資料，以協助您對資料庫的問題進行疑難排解。 非常重視資料 AWS 的安全性和隱私權，而且幾乎所有資料都會以您的 加密儲存 AWS KMS key。因此，內部沒有人 AWS 可以查看此資料。在先前的範例中，`tokenized.statement` 和 `tokenized.db_id` 都同時會以加密的形式存放。如果您的資料庫發生問題， AWS Support 可以透過參考支援 ID 來協助您。

進行查詢時，在 `Group` 中指定 `GroupBy` 可能會讓您省下不少心力。然而，如需對已傳回的資料進行更精細的控制，請指定維度的清單。例如，如果所需的是 `db.query_tokenized.statement`，則可將 `Dimensions` 屬性新增至 query.json 檔案。

```
[
    {
        "Metric": "db.load.avg",
        "GroupBy": {
            "Group": "db.query_tokenized",
            "Dimensions":["db.query_tokenized.statement"],
            "Limit": 10
        }
    }
]
```

### 擷取依查詢篩選的資料庫負載平均值
<a name="performance-insights-metrics-api-examples.DBLoadAverageByQuery"></a>

此範例中的對應 API 查詢與 [擷取熱門查詢的資料庫負載平均值](#performance-insights-metrics-api-examples.topquery) 中的命令類似。然而，查詢 query.json 檔案有以下內容。

```
[
 {
        "Metric": "db.load.avg",
        "GroupBy": { "Group": "db.wait_state", "Limit": 5  }, 
        "Filter": { "db.query_tokenized.id": "AKIAIOSFODNN7EXAMPLE" }
    }
]
```

在此回應中，會根據 query.json 檔案中指定的字符化查詢 AKIAIOSFODNN7EXAMPLE 貢獻來篩選所有值。金鑰也可能遵循與沒有篩選條件的查詢不同的順序，因為這是影響篩選查詢的前五個等待狀態。

# Performance Insights 的 Amazon CloudWatch 指標
<a name="performance-insights-cloudwatch"></a>

績效詳情會自動將指標發佈至 Amazon CloudWatch。您可以透過績效詳情來查詢相同的資料，但在 CloudWatch 中具備這些指標可讓您輕鬆新增 CloudWatch 警示。您也可以輕鬆將指標新增至現有的 CloudWatch 儀表板。


| 指標 | 描述 | 
| --- | --- | 
|  DBLoad  |  Amazon DocumentDB 的作用中工作階段數目。您通常會需要平均作用中工作階段數量的資料。在績效詳情中，系統會以 `db.load.avg` 的形式來查詢此資料。  | 
|  DBLoadCPU  |  等待狀態類型為 CPU 的作用中工作階段數目。在績效詳情中，此資料會查詢為 `db.load.avg`，並依等待狀態類型 篩選`CPU`。  | 
|  DBLoadNonCPU  |  等待狀態類型不是 CPU 的作用中工作階段數量。  | 

**注意**  
只有當資料庫執行個體上有負載時，這些指標才會發佈至 CloudWatch。

您可以使用 CloudWatch 主控台、 AWS CLI或 CloudWatch API 來檢查這些指標。

例如，您可以執行 [get-metric-statistics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-statistics.html) 命令來取得 `DBLoad` 指標的統計。

```
aws cloudwatch get-metric-statistics \
    --region ap-south-1 \
    --namespace AWS/DocDB \
    --metric-name DBLoad  \
    --period 360 \
    --statistics Average \
    --start-time 2022-03-14T8:00:00Z \
    --end-time 2022-03-14T9:00:00Z \
    --dimensions Name=DBInstanceIdentifier,Value=documentdbinstance
```

此範例會產生類似下列範例的輸出結果。

```
{
    "Datapoints": [
        {
            "Timestamp": "2022-03-14T08:42:00Z", 
            "Average": 1.0, 
            "Unit": "None"
        }, 
        {
            "Timestamp": "2022-03-14T08:24:00Z", 
            "Average": 2.0, 
            "Unit": "None"
        }, 
        {
            "Timestamp": "2022-03-14T08:54:00Z", 
            "Average": 6.0, 
            "Unit": "None"
        }, 
        {
            "Timestamp": "2022-03-14T08:36:00Z", 
            "Average": 5.7, 
            "Unit": "None"
        }, 
        {
            "Timestamp": "2022-03-14T08:06:00Z", 
            "Average": 4.0, 
            "Unit": "None"
        }, 
        {
            "Timestamp": "2022-03-14T08:00:00Z", 
            "Average": 5.2, 
            "Unit": "None"
        }
    ], 
    "Label": "DBLoad"
}
```

您可以使用 CloudWatch 主控台中的`DB_PERF_INSIGHTS`指標數學函數來查詢 Amazon DocumentDB Performance Insights 計數器指標。`DB_PERF_INSIGHTS` 函數也包含以次分鐘為間隔的 `DBLoad` 指標。您可以根據這些指標設定 CloudWatch 警示。如需如何建立警示的詳細資訊，請參閱[從 AWS 資料庫在績效詳情計數器指標上建立警示](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_alarm_database_performance_insights.html)。

如需 CloudWatch 的詳細資訊，請參閱 *Amazon CloudWatch 使用者指南*中的[什麼是 Amazon CloudWatch？](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)。

# 計數器指標的績效詳情
<a name="performance-insights-counter-metrics"></a>

計數器指標是績效詳情儀表板中的作業系統指標。若要協助識別並分析效能問題，您可以將計數器指標與資料庫負載相互關聯。

## 績效詳情作業系統計數器
<a name="performance-insights-counter-metrics-counters"></a>

Amazon DocumentDB Performance Insights 提供下列作業系統計數器。


| 計數器 | 類型 | 指標 | 
| --- | --- | --- | 
| 作用中 | memory | os.memory.active | 
| buffers | memory | os.memory.buffers | 
| cached | memory | os.memory.cached | 
| dirty | memory | os.memory.dirty | 
| free | memory | os.memory.free | 
| inactive | memory | os.memory.inactive | 
| mapped | memory | os.memory.mapped | 
| pageTables | memory | os.memory.pageTables | 
| slab | memory | os.memory.slab | 
| total | memory | os.memory.total | 
| writeback | memory | os.memory.writeback | 
| idle | cpuUtilization | os.cpuUtilization.idle | 
| system | cpuUtilization | os.cpuUtilization.system | 
| total | cpuUtilization | os.cpuUtilization.total | 
| user | cpuUtilization | os.cpuUtilization.user | 
| wait | cpuUtilization | os.cpuUtilization.wait | 
| one | loadAverageMinute | os.loadAverageMinute.one | 
| fifteen | loadAverageMinute | os.loadAverageMinute.fifteen | 
| five | loadAverageMinute | os.loadAverageMinute.five | 
| cached | 交換 | os.swap.cached | 
| free | 交換 | os.swap.free | 
| in | 交換 | os.swap.in | 
| out | 交換 | os.swap.out | 
| total | 交換 | os.swap.total | 
| rx | 網路 | os.network.rx | 
| tx | 網路 | os.network.tx | 
| numVCPUs | 一般 | os.general.numVCPUs | 