

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

# RDS Proxy 監控儀表板
<a name="rds-proxy-monitoring-dashboard"></a>

您可以在代理的監控索引標籤下存取 RDS Proxy 監控儀表板。

![RDS Proxy 監控儀表板。](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/Proxy-monitoring-dashboard.png)


儀表板提供一組預先設定的指標，配置在小工具中，旨在協助您執行常見的可觀測性和故障診斷任務。如果指標不在此儀表板中顯示，您可以使用儀表板右上角提供的連結來檢視 CloudWatch 中的所有指標。

您無法從預設儀表板新增或移除指標。如果您想要為代理建立自訂監控檢視，可以直接在 CloudWatch 中執行此操作。如需詳細資訊，請參閱[使用 CloudWatch 儀表板](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)。

監控儀表板分為數個區段，指標使用預先定義的彙總分組為小工具。如需基礎 RDS Proxy 指標的詳細資訊，請參閱[使用 CloudWatch 監控 RDS Proxy 指標](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-proxy.monitoring.html)。

**Topics**
+ [概觀](#rds-proxy-monitoring-dashboard-overview)
+ [延遲](#rds-proxy-monitoring-dashboard-latency)
+ [連線集區](#rds-proxy-monitoring-dashboard-connection-pool)
+ [資料庫連線使用率](#rds-proxy-monitoring-dashboard-db-connections-utilization-section)

## 概觀
<a name="rds-proxy-monitoring-dashboard-overview"></a>

### 依角色的可用性 %
<a name="rds-proxy-monitoring-dashboard-availability"></a>

根據 `AvailabilityPercentage`指標的彙總，在 `READWRITE`和 `READ_ONLY`角色中提供目標的時間百分比。

可用性指標說明代理所執行資料庫運作狀態檢查的成功率，反映目標資料庫執行個體的運作狀態。此小工具會針對每個角色使用 `Average` 統計資料，而計算會受到指定角色中的資料庫執行個體數目 （一個用於`READWRITE`角色，可能多個用於`READ_ONLY`角色） 和代理中的節點數目 （由 RDS Proxy 基礎設施決定） 影響。

**注意**  
RDS Proxy 會根據向它註冊的資料庫執行個體組態，自動調整其容量。您無法直接控制代理中的節點數量，但您可以使用可用性指標的`sample count`統計資料來檢查目前的節點計數。如需 RDS Proxy 如何調整其容量的詳細資訊，請參閱[規劃 IP 地址容量](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-proxy-network-prereqs.html#rds-proxy-network-prereqs.plan-ip-address)。

**`READWRITE` 目標角色**只能包含一個資料庫執行個體，而可用性百分比的計算方式為所有代理節點的平均運作狀態檢查成功率。例如，如果代理包含四個節點，且其中之一未在指定期間內收到成功的運作狀態檢查回應，則讀取/寫入可用性將報告為該期間的 75%。同樣地，如果代理包含四個節點，而且它們都無法在 1 分鐘內執行運作狀態檢查 30 秒，代理會在該分鐘內報告 50% 的可用性。

**`READ_ONLY` 目標角色**可以包含多個資料庫執行個體，例如 Aurora 叢集中的多個複本。從每個 RDS Proxy 節點的觀點來看，如果任何目標執行個體通過運作狀態檢查，則唯讀角色會被視為可用。然後，所有代理節點的可用性平均，最終數量會顯示在小工具中。請考慮此包含四個節點的代理範例：
+ 每個代理節點會對多個唯讀目標 （資料庫執行個體） 執行運作狀態檢查，其中有些檢查成功，有些則失敗。只要代理節點從至少一個目標執行個體收到成功的運作狀態檢查回應，就會回報唯讀角色。
+ 四個代理節點會對多個唯讀目標執行運作狀態檢查。三個代理節點可以連接到至少一個目標，但一個代理節點無法連接到任何目標。唯讀角色可用性的計算方式為代理節點回報`Average`的 角色可用性： `(100% + 100% + 100% + 0% )/ 4 = 75%`

**注意**  
Aurora 叢集或具有兩個可讀取待命的 Amazon RDS 多可用區域資料庫叢集部署支援 RDS Proxy `READ_ONLY`目標角色，但具有僅供讀取複本的 Amazon RDS 資料庫執行個體部署不支援。如果代理不包含唯讀目標，`READ_ONLY`角色的可用性可能會顯示「零」。

角色可用性小工具在下列案例中最有用：
+ 當您想要快速評估可用性是否因為代理節點或目標資料庫執行個體的運作狀態而受到影響時，診斷連線錯誤。
+ 當資料庫沒有絕對無法使用，但代理的運作狀態檢查指標可以支援資料庫過載的假設時，診斷高流量事件。RDS Proxy 使用許多保留用於監控和運作狀態檢查職責的持久性連線，因此，如果資料庫指標不表示停機時間，但代理的運作狀態檢查間歇性失敗，則可能是資料庫負載過多的指標。
+ 識別阻止代理連線到目標執行個體的組態問題。例如，如果您看到代理可用性指標下降，但目標執行個體根據其他訊號顯示運作狀態良好，則可能表示與代理子網路相關聯的網路 ACLs 發生問題，或連接至目標資料庫執行個體的安全群組組態錯誤。

診斷涉及 RDS Proxy 可用性指標的問題時，您還必須檢閱資料庫本身的運作狀態和使用率指標。代理的可用性計算會受到資料庫回應運作狀態檢查的能力影響，因此您必須在形成結論之前從兩側收集資訊。

### 依角色的資料庫連線使用率 %
<a name="rds-proxy-monitoring-dashboard-db-connections-utilization"></a>

每個角色的代理連線集區使用率百分比，計算方式為`DatabaseConnections`除以 `MaxDatabaseConnectionsAllowed`。

允許的資料庫連線數目上限是指由 `MaxConnectionsPercent`設定控制的代理集區大小上限，而這又取決於資料庫連線限制，例如 `max_connections` 參數。如需此設定的詳細資訊，請參閱 [RDS Proxy 連線考量](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-proxy-connections.html)。

**注意**  
RDS Proxy `MaxConnectionsPercent` 保留一部分配額供內部監控連線使用。預留連線的總數不是常數，但取決於內部代理節點的數量和目標資料庫執行個體的數量。

我們建議在允許的連線數與尖峰負載期間預期的最大資料庫連線數之間至少保持 30% 的前端空間。此前端空間可改善意外工作負載尖峰期間的用戶端體驗，並協助 RDS Proxy 將連線重新分佈到其內部基礎設施，以進行熱管理和其他用途。為了協助您遵循此建議，連線使用率小工具包含 70% 上限的固定指引列。

例如，假設您有一個 Aurora PostgreSQL 叢集，其中有一個寫入器和兩個讀取器，每個執行個體`max_connections`的設定為 500，而代理設定`MaxConnectionsPercent`為 50：

1. RDS Proxy 會保留數個連線以進行監控，這表示每個執行個體`MaxDatabaseConnectionsAllowed`的 少於 250 個： `(max_connections=500 * MaxConnectionsPercent=50%) - reserved connections`

1. 對於包含一個寫入器`READWRITE`的角色，代理連線集區的大小上限將略小於 250 (`50% * 500 - reserved_connections`)，而 70% 的引導線將對應至小於 175 個連線 ()`70% * 250 - reserved connections`。

1. 對於包含兩個讀取器`READ_ONLY`的角色，代理連線集區的大小上限將略小於 500 (`2 * 50% * 500 - reserved_connections`)，而 70% 的引導線將對應至小於 350 個連線 ()`70% * 500 - reserved connections`。

此小工具可做為連線使用率的一般指標，而且在某些故障診斷案例期間是有用的起點。例如：
+ 連線使用率的頻繁和急劇變化可能表示`MaxIdleConnectionsPercent`設定太低，而且您可以透過允許閒置連線長時間保持開啟來減少連線流失。
+ 根據您的工作負載模式和用戶端活動，您可能會針對任何指定時間使用多少連線，制定高層級的預期。小工具可協助您驗證這些期望，並偵測潛在的用戶端問題。請考慮您的`MaxIdleConnectionsPercent`設定非常低，但連線使用率持續非常高的情況。這可能表示用戶端很少閒置 （不一定是問題），但也可能表示連線遭到鎖定，因此不需要進行閒置檢查。
+ 如果沒有鎖定或代理組態的問題，則高資料庫連線使用率可能表示需要提高資料庫`max_connections`的設定，或者，如果是唯讀角色，叢集可以使用更多僅供讀取複本。

### 延遲明細
<a name="rds-proxy-monitoring-dashboard-latency-breakdown"></a>

連線借用和查詢回應的延遲。


| 標籤 | 說明 | 來源 | 
| --- | --- | --- | 
| DatabaseConnectionsBorrowLatency | 代理取得資料庫連線所需的時間，無論是集區中的現有連線，還是必須針對資料庫開啟的新連線。 | RDS Proxy，DatabaseConnectionsBorrowLatency指標 | 
| QueryResponseLatency | 取得查詢請求和代理回應之間的時間。 | RDS Proxy，QueryResponseLatency指標 | 
| QueryDatabaseResponseLatency | 資料庫回應查詢所花費的時間，包括代理與資料庫之間的網路延遲。 | RDS Proxy，QueryDatabaseResponseLatency指標 | 

此小工具可協助您了解查詢的平均回應時間，以及代理層對總延遲的貢獻。借用延遲指標對於偵測集區擁塞特別有用，也就是當用戶端請求因為集區中沒有足夠的連線可供使用而等待時。

只有在 值大於零時，才會發佈這些指標的資料點，這表示小工具可能會在沒有查詢流量的期間包含間隙。

### 用戶端連線
<a name="rds-proxy-monitoring-dashboard-client-connections"></a>

用戶端與代理之間的連線數，依連線狀態細分。


| 標籤 | 說明 | 來源 | 
| --- | --- | --- | 
| ClientConnectionsReceived | 接收到的用戶端連線要求數。 | RDS Proxy，ClientConnectionsReceived指標 | 
| ClientConnectionsSetupSucceeded | 成功建立的用戶端連線數目。 | RDS Proxy，ClientConnectionsSetupSucceeded指標 | 
| ClientConnectionsSetupFailedAuth | 因身分驗證或 TLS 設定錯誤而失敗的用戶端連線嘗試次數。 | RDS Proxy，ClientConnectionsSetupFailedAuth指標 | 
| ClientConnectionsClosed | 已關閉的用戶端連線數。 | RDS Proxy，ClientConnectionsClosed指標 | 

此小工具可透過在單一圖表上顯示多個用戶端連線指標，協助您評估用戶端連線的輸送量和狀態。它有助於監控用戶端連線的整體成功率，並觀察連線開啟和關閉的速率。這有助於偵測連線風暴和用戶端活動隨時間的變化。

### Proxy 工作負載
<a name="rds-proxy-monitoring-dashboard-proxy-workload"></a>

根據代理指標，每個`QueryRequests`代理端點的查詢請求數量。

資料序列標籤因端點而異：
+ 預設讀取/寫入代理端點使用 `default`標籤。
+ 如果您在透過 AWS 管理主控台建立代理時啟用選用的唯讀端點，則此端點會使用字首為代理名稱的`read-only`標籤。對於名為 的代理`my-proxy`，標籤將為 `my-proxy-read-only`。
+ 其他代理端點使用端點名稱做為沒有其他字首的標籤。

此小工具有助於監控透過每個代理端點處理的工作負載量。

**重要**  
 目前不會針對使用延伸查詢通訊協定的 PostgreSQL 連線上的查詢活動發出 `QueryRequests` 指標。

## 延遲
<a name="rds-proxy-monitoring-dashboard-latency"></a>

### 依目標的資料庫回應延遲
<a name="rds-proxy-monitoring-dashboard-db-response-latency-by-target"></a>

根據`QueryDatabaseResponseLatency`代理指標，每個目標 （資料庫執行個體） 的資料庫回應延遲。

此小工具適用於監控代理下每個資料庫執行個體的資料庫回應延遲，尤其是當您針對不同的工作負載使用不同的資料庫執行個體，或執行個體大小不同時。請考量下列範例：
+ 資料庫叢集包含多個僅供讀取複本，所有複本都會透過代理接收流量。此外，有些複本會直接從繞過代理的用戶端接收流量。小工具可協助您判斷額外的流量是否影響透過代理處理的工作負載的查詢延遲。
+ 資料庫叢集包含不同大小的複本、透過代理處理整個工作負載，以及資料庫執行個體使用預設連線組態，其中連線限制與執行個體大小成正比。代理會遵循連線限制，並按比例將較少的連線傳送至較小的執行個體，但這些執行個體可能會因為其快取和緩衝區也較小而產生更高的延遲。小工具可協助您判斷是否為這種情況，以及小型執行個體是否跟上查詢延遲的較大執行個體。

## 連線集區
<a name="rds-proxy-monitoring-dashboard-connection-pool"></a>

### 依角色鎖定 % 的資料庫連線
<a name="rds-proxy-monitoring-dashboard-pinned-by-role"></a>

每個角色固定的資料庫連線百分比，計算方式為`DatabaseConnectionsCurrentlySessionPinned`除以 `DatabaseConnections`。

此小工具適用於監控工作負載中的連線鎖定。與其他小工具類似，這裡使用相對值作為比固定連線的絕對數量更合適的運作狀態指標。理想的值為零，但並非所有工作負載都能完全避免連線鎖定。您可能會對一小部分連線發生鎖定感到放心，只要它們不會對其他工作負載造成明顯影響。不過，如果整個工作負載中有很大一部分發生鎖定，可能表示用戶端行為發生問題，導致 RDS Proxy 無法多工連線 （在交易之間重複使用）。

若要進一步了解連線鎖定，請參閱[避免鎖定 RDS Proxy](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-proxy-pinning.html)。

### 依角色的資料庫連線設定指標
<a name="rds-proxy-monitoring-dashboard-setup-metrics-by-role"></a>

代理與資料庫之間的連線設定數目，依設定結果和目標角色細分。小工具會顯示每個角色的多個資料序列：


| 標籤 | 說明 | 來源 | 
| --- | --- | --- | 
| DatabaseConnectionRequests | 建立資料庫連線的要求數目。 | RDS Proxy，DatabaseConnectionRequests指標 | 
| DatabaseConnectionsSetupSucceeded | 成功建立的資料庫連線數目。 | RDS Proxy，DatabaseConnectionsSetupSucceeded指標 | 
| DatabaseConnectionsSetupFailed | 失敗的資料庫連線要求數目。 | RDS Proxy，DatabaseConnectionsSetupFailed指標 | 

只有當值大於零時，才會發佈這些指標的資料點，這表示小工具可能會在沒有相關事件的期間包含差距。例如，如果用戶端在指定期間內透過代理執行查詢，而且代理可以透過重複使用現有的後端資料庫連線 （不開啟新連線） 來處理整個流量，則不會看到該期間的資料點。

此小工具適用於觀察代理和資料庫之間的活動和連線流失。與**用戶端連線**小工具上顯示的資訊配對時，您可以使用它來評估 Proxy 內連線集區和多工的效率。

請記住，RDS Proxy 不會預先配置整個連線集區的最大容量，而且會在閒置一段時間後關閉閒置的資料庫連線。`DatabaseConnectionRequests` 高於零並在負載下波動是正常的，但 `DatabaseConnectionRequests`與 的比率`ClientConnectionsReceived`可能需要您注意。例如：
+ 如果用戶端對代理開啟特定數量的連線，且代理在每個期間內對資料庫開啟幾乎相同數量的連線，您可以假設代理因為鎖定或其他原因而無法重複使用連線。這種情況可能需要進一步調查，專注於防止代理重複使用連線的用戶端行為。
+ 如果用戶端開啟特定數目的代理連線，但新的資料庫連線只是該數目的一小部分，則表示代理透過重複使用現有的連線來處理絕大多數的流量。這是連線集區的正常所需狀態。

### 依目標的資料庫連線設定指標
<a name="rds-proxy-monitoring-dashboard-setup-metrics-by-target"></a>

相當於 **Database Connections Setup Metrics By Role**，資料會依目標 （資料庫執行個體） 細分。

## 資料庫連線使用率
<a name="rds-proxy-monitoring-dashboard-db-connections-utilization-section"></a>

### 依目標的資料庫連線使用率 %
<a name="rds-proxy-monitoring-dashboard-utilization-by-target"></a>

每個目標 （資料庫執行個體） 的代理連線集區使用率百分比，計算方式為`DatabaseConnections`除以 `MaxDatabaseConnectionsAllowed`。

此小工具類似於**依角色的資料庫連線使用率 %**，但可提供每個資料庫執行個體連線使用率的精細檢視。對於具有多個執行個體的資料庫叢集，驗證`READ_ONLY`角色中的公平連線分佈非常有用。

例如，假設您的 Aurora 叢集有兩個讀取器`MaxDatabaseConnectionsAllowed`，每個讀取器 500 個。如果第一個讀取器的代理連線數量為 100，第二個讀取器為 125，則小工具會顯示第一個讀取器的連線使用率為 20%，第二個讀取器的連線使用率為 25%。

**注意**  
 RDS Proxy 會嘗試在每個複本上平衡用戶端連線的數量，並以資料庫的連線限制加權。它不會根據 CPU 使用率等資料庫指標來負載平衡流量，也不知道每個用戶端工作階段在開啟後會持續多久。因此，執行個體之間的連線使用率小不平衡是正常現象。

### READWRITE/READ\_ONLY 角色的資料庫連線用量
<a name="rds-proxy-monitoring-dashboard-usage-by-role"></a>

代理和資料庫使用和允許的資料庫連線數目。此類型的小工具有兩種：一個用於`READWRITE`角色，另一個用於`READ_ONLY`角色。

只有在代理的資料庫目標支援包含 Aurora 資料庫叢集和 Amazon RDS 多可用區域資料庫叢集部署`READ_ONLY`的角色時，才會顯示此小工具。Amazon RDS 資料庫執行個體部署不會顯示小工具。

每個小工具都包含多個資料序列：


| 標籤 | 說明 | 來源 | 
| --- | --- | --- | 
| Database Connections | 存在於資料庫中的連線數目，無論是由代理或其他用戶端開啟。 | 資料庫、DatabaseConnections指標 | 
| Database Connections: proxy | 代理與資料庫之間存在的資料庫連線數，不包括 RDS Proxy 用於資料庫監控的內部連線。 | RDS Proxy，DatabaseConnections指標 | 
| MaxDatabaseConnectionsAllowed: Proxy | 代理允許的資料庫連線數目上限，由 MaxConnectionsPercent設定控制。 | RDS Proxy，MaxDatabaseConnectionsAllowed指標 | 

呈現的數字是代理和基礎資料庫叢集的總和 （總計）。例如，假設資料庫叢集包含兩個執行個體，每個執行個體允許 1000 個連線，且代理已使用 `MaxConnectionsPercent`的 設定`20`。在此案例中， `MaxDatabaseConnectionsAllowed: Proxy`會顯示`2 * 1000 * 20% = 400`減去 RDS Proxy 在內部為監控目的而保留的連線數。實際值會小於 `400`，而且會根據代理中的節點數目而有所不同。

此小工具在下列情況下最有用：
+ 監控代理和資料庫的絕對連線使用率圖。
+ 判斷透過代理到達資料庫的連線數與繞過代理的連線數。
+ 計算目前連線使用率與允許使用率上限之間的差異。

**注意**  
 即使透過代理處理所有用戶端連線`Database Connections: Proxy`， 的值`DatabaseConnections`也會高於 。RDS 平台和 RDS Proxy 基礎設施一律會維護許多內部連線。這些連線會由資料庫計數，但不會反映在代理指標中。