您可以使用 Azure 監視器 計量 來監視資料庫和彈性集區資源耗用量和健康情況。 當計量值指出潛在問題時,您可以使用 警示 來傳送通知。
計量
計量是一系列以一般時間間隔度量的數值,通常使用 count
、percent
、bytes
之類的單位。根據計量的性質,您可以使用 total
、count
、average
、minimum
、maximum
之類的彙總來計算一段時間的計量值。 您可以依 維度分割某些計量。 每個維度都會提供數值的額外內容。
可用的 Azure SQL 資料庫計量範例包括:CPU percentage
、Data space used
、Deadlocks
、Tempdb Percent Log Used
。
如需 Azure SQL Database 中的所有可用計量,請參閱 資料庫計量 和 彈性集區計量 。
注意
某些計量僅適用於特定類型的資料庫或彈性集區。 每個計量的描述都會提及其使用是否局限於特定的資料庫或彈性集區類型,例如虛擬核心、超大規模資料庫、無伺服器等。
在 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 Database 上診斷和排除高 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 Database 中資料庫的檔案空間。 |
已使用百分比的數據空間 | storage_percent |
針對資料庫,此計量會顯示相較於資料庫的資料大小限制,資料庫的資料檔案中所使用的儲存空間量。 針對彈性集區,它會顯示彈性集區中所有資料庫的資料檔案中使用的儲存空間量,以相較於彈性集區資料大小限制的百分比表示。 資料庫或彈性集區的數據大小限制可能設定低於數據大小 上限 。 若要尋找數據大小上限,請參閱虛擬核心資料庫、虛擬核心彈性集區、DTU 資料庫和 DTU 彈性集區的資源限制。 |
已分配的數據空間百分比 | allocated_data_storage_percent |
針對彈性集區,此計量會顯示相較於集區資料大小限制,彈性集區中所有資料庫的資料檔案所佔用的儲存空間量,以百分比表示。 |
Tempdb 日誌使用百分比 | tempdb_log_used_percent |
此計量會顯示相較於記錄大小上限,tempdb 資料庫中的交易記錄空間使用量,以百分比表示。 如需詳細資訊,請參閱 Azure SQL Database 中的 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
通知。 警示規則只有在解決先前的警示之後才會觸發新的警示。 可設定狀態的警示可避免經常收到關於持續狀況的通知。 如需具狀態和無狀態警示的詳細資訊,請參閱 警示和狀態。