使用計量與警示監視 Azure SQL 資料庫
適用於:Azure SQL 資料庫
您可以使用 Azure 監視器計量來監視資料庫和彈性集區資源使用量和健康情況。 當計量值指出潛在問題時,您可以使用警示來傳送通知。
計量
計量是一系列以一般時間間隔度量的數值,通常使用 count
、percent
、bytes
之類的單位。根據計量的性質,您可以使用 total
、count
、average
、minimum
、maximum
之類的彙總來計算一段時間的計量值。 您可以依維度分割某些計量。 每個維度都會提供數值的額外內容。
可用的 Azure SQL 資料庫計量範例包括:CPU percentage
、Data space used
、Deadlocks
、Tempdb Percent Log Used
。
請參閱 Azure SQL 資料庫中所有可用計量的資料庫計量和彈性集區計量。
注意
某些計量僅適用於特定類型的資料庫或彈性集區。 每個計量的描述都會提及其使用是否局限於特定的資料庫或彈性集區類型,例如虛擬核心、超大規模資料庫、無伺服器等。
在 Azure SQL 資料庫入口網站中,數個常用的計量會在 [概觀] 頁面的 [監視] 索引標籤上繪製圖表。 計量可讓您一目了然地評定資料庫或彈性集區的資源使用量和健康情況。
在 [關鍵計量] 底下,選取 [查看所有計量] 或圖表內的任意位置,以開啟計量瀏覽器。 在 [計量] 頁面中,您可以檢視資料庫或彈性集區資源的所有其他可用計量。 在計量瀏覽器中,您可以變更圖表的時間範圍、細微性和彙總類型,變更圖表類型,擴充範圍以包含來自其他 Azure 資源的計量,建立警示規則等。您也可以在資源功能表中 [監視] 下選取 [計量] 功能表項目,來開啟計量瀏覽器。
使用計量來監視資料庫和彈性集區
您可以使用計量來監視資料庫和彈性集區資源使用量和健康情況。 例如,您可以:
- 將資料庫或彈性集區調整為適合應用程式工作負載的正確大小
- 偵測資源使用量的逐漸增加,並主動擴大資料庫或彈性集區
- 偵測效能問題並進行疑難排解
下表描述 Azure SQL 資料庫中的常用計量。
度量名稱 | 計量識別碼 | 描述 |
---|---|---|
CPU 百分比 | cpu_percent |
此計量會顯示相較於資料庫或彈性集區使用者工作負載限制的 CPU 使用量,以百分比表示。 如需詳細資訊,請參閱使用者工作負載和內部處理序的資源使用量。 |
SQL 執行個體 CPU 百分比 | sql_instance_cpu_percent |
此計量會顯示使用者和系統工作負載的總計 CPU 使用量,以百分比表示。 由於此計量和 CPU 百分比計量是以不同的尺度來測量,因此它們不能彼此直接比較。 如需詳細資訊,請參閱使用者工作負載和內部處理序的資源使用量。 |
資料 IO 百分比 | physical_data_read_percent |
此計量會顯示相較於資料庫或彈性集區使用者工作負載限制的資料檔案 IO 使用量,以百分比表示。 如需詳細資訊,請參閱資料 IO 治理。 |
記錄 IO 百分比 | log_write_percent |
此計量會顯示相較於資料庫或彈性集區使用者工作負載限制的交易記錄寫入輸送量使用量,以百分比表示。 如需詳細資訊,請參閱交易記錄速率治理。 |
背景工作角色百分比 | workers_percent |
此計量會顯示相較於資料庫或彈性集區使用者工作負載限制的背景工作執行緒使用量,以百分比表示。 |
DTU 百分比 | dtu_consumption_percent |
此計量會顯示相較於資料庫或彈性集區使用者工作負載限制的 DTU 使用量,以百分比表示。 DTU 百分比衍生自其他三個計量:CPU 百分比、資料 IO 百分比和記錄 IO 百分比。 在任何時間點,DTU 百分比都符合這三個計量中的最高值。 |
已使用的 CPU | cpu_used |
此計量會顯示相較於資料庫或彈性集區使用者工作負載限制的 CPU 使用量,以虛擬核心數目表示。 如需詳細資訊,請參閱對 Azure SQL 資料庫上的高 CPU 進行診斷和疑難排解。 |
已使用的 DTU | dtu_used |
此計量會顯示資料庫或彈性集區所使用的 DTU 數目。 |
已計費的應用程式 CPU | app_cpu_billed |
對於無伺服器資料庫,此計量會顯示已計費的計算量 (CPU 和記憶體),以虛擬核心秒表示。 如需詳細資訊,請參閱 無伺服器計算層中的計費。 |
應用程式 CPU 百分比 | app_cpu_percent |
針對無伺服器資料庫,此計量會顯示相較於應用程式套件虛擬核心上限的 CPU 使用量,以百分比表示。 如需詳細資訊,請參閱無伺服器計算層中的監視。 |
應用程式記憶體百分比 | app_memory_percent |
針對無伺服器資料庫,此計量會顯示相較於應用程式套件記憶體上限的記憶體使用量,以百分比表示。 如需詳細資訊,請參閱無伺服器計算層中的監視。 |
工作階段計數 | sessions_count |
此計量會顯示為資料庫或彈性集區建立的使用者工作階段數目。 |
已使用的資料空間 | storage |
針對資料庫,此計量會顯示資料庫的資料檔案中使用的儲存空間量。 |
已使用的資料空間 | storage_used |
針對彈性集區,此計量會顯示彈性集區中所有資料庫的資料檔案中使用的儲存空間量。 |
已配置的資料空間 | allocated_data_storage |
此計量會顯示資料庫的資料檔案,或彈性集區中所有資料庫的資料檔案所佔用的儲存空間量。 資料檔案可能包含空白空間。 因此,配置的資料空間通常高於用於相同資料庫或彈性集區的資料空間。 如需詳細資訊,請參閱管理 Azure SQL 資料庫中的資料庫的檔案空間。 |
已使用的資料空間百分比 | storage_percent |
針對資料庫,此計量會顯示相較於資料庫的資料大小限制,資料庫的資料檔案中所使用的儲存空間量。 針對彈性集區,它會顯示彈性集區中所有資料庫的資料檔案中使用的儲存空間量,以相較於彈性集區資料大小限制的百分比表示。 資料庫或彈性集區的資料大小限制可能設定為低於資料大小上限。 若要尋找資料大小上限,請參閱虛擬核心資料庫、虛擬核心彈性集區、DTU 資料庫和 DTU 彈性集區的資源限制。 |
已配置的資料空間百分比 | allocated_data_storage_percent |
針對彈性集區,此計量會顯示相較於集區資料大小限制,彈性集區中所有資料庫的資料檔案所佔用的儲存空間量,以百分比表示。 |
Tempdb 使用的記錄百分比 | tempdb_log_used_percent |
此計量會顯示相較於記錄大小上限,tempdb 資料庫中的交易記錄空間使用量,以百分比表示。 如需詳細資訊,請參閱 Azure SQL 資料庫中的 tempdb。 |
成功的連線 | connection_successful |
此計量會顯示成功建立的資料庫連線數目。 此計量可以分割成兩個維度 SslProtocol 和 ValidatedDriverNameAndVersion ,以查看使用特定加密通訊協定版本或使用特定用戶端驅動程式的連線數目。 |
失敗的連線:系統錯誤 | connection_failed |
此計量會顯示因為內部服務錯誤而失敗的資料庫連線嘗試次數。 這類錯誤最常見的是暫時性錯誤。 此計量可以分割成兩個維度 Error 和 ValidatedDriverNameAndVersion ,以查看因特定錯誤或特定用戶端驅動程式而失敗的連線嘗試次數。 |
失敗的連線:使用者錯誤 | connection_failed_user_error |
此計量會顯示因使用者可校正錯誤而失敗的資料庫連線嘗試次數,例如不正確的密碼或連線遭防火牆封鎖。 此計量可以分割成兩個維度 Error 和 ValidatedDriverNameAndVersion ,以查看因特定錯誤或特定用戶端驅動程式而失敗的連線嘗試次數。 |
鎖死 | deadlock |
此計量會顯示資料庫中的鎖死數目。 |
可用性 | availability |
可用性是根據可用於連線的資料庫來決定的。 對於每個一分鐘的資料點,可能的值為 100% 或 0% 。 如需詳細資訊,請參閱可用性計量。 |
可用性計量
可用性計量會追蹤個別 Azure SQL 資料庫層級的可用性。 此功能目前為預覽功能。
可用性會細微至連線中斷的一分鐘。 可用性是根據可用於連線的資料庫來決定的。 如果使用者在一分鐘內建立資料庫連線的所有連續嘗試都因服務問題而失敗,則一分鐘視為停機或無法使用。 如果存在間歇性無法使用,則連續無法使用的持續時間必須跨越分鐘界限才能視為停機。 通常,顯示可用性的延遲不到三分鐘。
以下是用於計算每一分鐘間隔可用性的邏輯:
- 如果至少有一個成功連線,則可用性為 100%。
- 如果所有連線都因使用者錯誤而失敗,可用性為 100%。
- 如果沒有連線嘗試,可用性為 100%。
- 如果所有連線都因系統錯誤而失敗,可用性為 0%。
- 目前,無伺服器計算層級尚不支援可用性計量資料,且會顯示為 100%。
因此,可用性計量是衍生自下列現有計量的複合計量:
- 成功的連線
- 失敗的連線:使用者錯誤
- 遭到防火牆封鎖
- 失敗的連線:系統錯誤
使用者錯誤包括因使用者組態、工作負載或管理而失敗的所有連線。 系統錯誤包括因與 Azure SQL 資料庫服務相關的暫時性問題而失敗的所有連線。
使用者組態導致的錯誤範例:
使用者工作負載導致的錯誤範例:
使用者管理導致的錯誤範例:
- 擴大或縮小資料庫或彈性集區
- 異地複寫計劃性或非計劃性容錯移轉
- 容錯移轉群組計劃性或非計劃性容錯移轉
- 異地次要資料庫處於植入狀態
- 因時間點還原 (PITR)、長期還原 (LTR) 或從已刪除的資料庫還原而處於還原狀態的資料庫
- 尚未完成複製的資料庫 (資料庫複製)
警示
您可以建立警示規則,以通知您一個計量或多個計量的值超出預期的範圍。
您可以透過多種方式設定警示規則的範圍,以符合您的需求。 例如,警示規則範圍可以設定為:
- 單一資料庫
- 彈性集區
- 資源群組中的所有資料庫或彈性集區
- 訂用帳戶在 Azure 區域內的所有資料庫或彈性集區
- 訂用帳戶在所有區域內的所有資料庫或彈性集區
警示規則會定期評估回顧期間的彙總計量值,並將其與閾值進行比較。 您可以設定閾值、評估頻率和回顧期間。
如果觸發警示規則,系統會根據您在連結至警示規則的動作群組中指定的通知喜好設定通知您。 例如,您可以接收電子郵件、簡訊或聲音通知。 警示規則也可以觸發動作,例如 Webhook、自動化 Runbook、函式、邏輯應用程式等。您可以將警示與支援的 IT 服務管理產品整合。
若要深入了解 Azure 監視器警示,請參閱 Azure 監視器警示概觀。 若要熟悉計量警示,請檢閱計量警示、管理警示規則和動作群組。
建議的警示規則
在警示規則中使用的計量和最佳閾值,會因 Azure SQL 資料庫中的各種客戶工作負載而有所不同。
下表中建議的警示是一個起點,可協助您定義 Azure SQL 資料庫資源的最佳警示設定。 根據您的需求,您的設定可能與此範例不同。 您可以使用不同的閾值、評估頻率或回顧期間。 您可以選擇建立其他警示,或針對不同的應用程式和環境使用不同的警示規則設定。
以下是典型警示規則設定的範例。
警示規則名稱 | 計量 (訊號) | 警示邏輯 | 何時評估 | 建議的嚴重性 |
---|---|---|---|---|
使用者 CPU 使用量高 | CPU 百分比 | 閾值:Static 彙總: Average 運算子: Greater than 閾值: 90 |
檢查每一個:1 minute 回顧期間: 10 minutes |
2 - 警告 |
總計 CPU 使用量高 | SQL 執行個體 CPU 百分比 | 閾值:Static 彙總: Average 運算子: Greater than 閾值: 90 |
檢查每一個:1 minute 回顧期間: 10 minutes |
2 - 警告 |
背景工作角色使用量高 | 背景工作角色百分比 | 閾值:Static 彙總: Minimum 運算子: Greater than 閾值: 60 |
檢查每一個:1 minute 回顧期間: 5 minutes |
1 - 錯誤 |
資料 IO 使用量高 | 資料 IO 百分比 | 閾值:Static 彙總: Average 運算子: Greater than 閾值: 90 |
檢查每一個:1 minute 回顧期間: 15 minutes |
3 - 資訊 |
資料空間不足 | 已使用的資料空間百分比 | 閾值:Static 彙總: Minimum 運算子: Greater than 閾值: 95 |
檢查每一個:15 minute 回顧期間: 15 minutes |
1 - 錯誤 |
tempdb 記錄空間不足 |
Tempdb 使用的記錄百分比 | 閾值:Static 彙總: Minimum 運算子: Greater than 閾值: 60 |
檢查每一個:1 minute 回顧期間: 5 minutes |
1 - 錯誤 |
死結 | 鎖死 | 閾值:Dynamic 彙總: Total 運算子: Greater than 閾值敏感度: Medium |
檢查每一個:15 minutes 回顧期間: 1 hour |
3 - 資訊 |
失敗的連線 (使用者錯誤) | 失敗的連線:使用者錯誤 | 閾值:Dynamic 彙總: Total 運算子: Greater than 閾值敏感度: Medium |
檢查每一個:5 minutes 回顧期間: 15 minutes |
2 - 警告 |
失敗的連線 (系統錯誤) | 失敗的連線:系統錯誤 | 閾值:Static 彙總: Total 運算子: Greater than 單位: Count 閾值: 10 |
檢查每一個:1 minute 回顧期間: 5 minutes |
2 - 警告 |
異常連線速率 | 成功的連線 | 閾值:Dynamic 彙總: Total 運算子: Greater or Less than 閾值敏感度: Low |
檢查每一個:5 minutes 回顧期間: 15 minutes |
2 - 警告 |
某些建議的警示規則會使用動態閾值來偵測可能需要注意的異常計量模式。 在收集足夠的歷程記錄資料以建立標準模式之前,不會觸發以動態閾值為基礎的警示規則。 如需詳細資訊,請參閱計量警示中的動態閾值。
根據預設,計量警示是可設定狀態的。 這表示一旦觸發警示規則,警示只會引發一次。 警示會維持 fired
狀態,直到它被解決為止,此時會傳送 resolved
通知。 警示規則只有在解決先前的警示之後才會觸發新的警示。 可設定狀態的警示可避免經常收到關於持續狀況的通知。 如需可設定狀態的警示和無狀態警示的詳細資訊,請參閱警示和狀態。