使用計量與警示監視 Azure SQL 資料庫

適用於:Azure SQL 資料庫

您可以使用 Azure 監視器計量來監視資料庫和彈性集區資源使用量和健康情況。 當計量值指出潛在問題時,您可以使用警示來傳送通知。

計量

計量是一系列以一般時間間隔度量的數值,通常使用 countpercentbytes 之類的單位。根據計量的性質,您可以使用 totalcountaverageminimummaximum 之類的彙總來計算一段時間的計量值。 您可以依維度分割某些計量。 每個維度都會提供數值的額外內容。

可用的 Azure SQL 資料庫計量範例包括:CPU percentageData space usedDeadlocksTempdb Percent Log Used

請參閱 Azure SQL 資料庫中所有可用計量的資料庫計量彈性集區計量

注意

某些計量僅適用於特定類型的資料庫或彈性集區。 每個計量的描述都會提及其使用是否局限於特定的資料庫或彈性集區類型,例如虛擬核心、超大規模資料庫、無伺服器等。

在 Azure SQL 資料庫入口網站中,數個常用的計量會在 [概觀]頁面的 [監視]索引標籤上繪製圖表。 這可讓您一目了然地評定資料庫或彈性集區的資源使用量和健康情況。

Azure SQL 資料庫 [概觀] 頁面上所顯示計量圖表 Azure 入口網站 螢幕快照。

[關鍵計量] 底下,選取[查看所有計量] 或圖表內的任意位置,以開啟計量瀏覽器。 在 [計量]頁面中,您可以檢視資料庫或彈性集區資源的所有其他可用計量。 在計量總管中,您可以變更圖表的時間範圍、粒度和匯總類型、變更圖表類型、展開範圍以包含來自其他 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 此計量會顯示成功建立的資料庫連線數目。 此計量可以分割成兩個維度 SslProtocolValidatedDriverNameAndVersion,以查看使用特定加密通訊協定版本或使用特定用戶端驅動程式的連線數目。
失敗的連線:系統錯誤 connection_failed 此計量會顯示因為內部服務錯誤而失敗的資料庫連線嘗試次數。 這類錯誤最常見的是暫時性錯誤。 此計量可以分割成兩個維度 ErrorValidatedDriverNameAndVersion,以查看因特定錯誤或特定用戶端驅動程式而失敗的連線嘗試次數。
失敗的連線:使用者錯誤 connection_failed_user_error 此計量會顯示因使用者可校正錯誤而失敗的資料庫連線嘗試次數,例如不正確的密碼或連線遭防火牆封鎖。 此計量可以分割成兩個維度 ErrorValidatedDriverNameAndVersion,以查看因特定錯誤或特定用戶端驅動程式而失敗的連線嘗試次數。
鎖死 deadlock 此計量會顯示資料庫中的鎖死數目。

警示

您可以建立警示規則,以通知您一個計量或多個計量的值超出預期的範圍。

您可以透過多種方式設定警示規則的範圍,以符合您的需求。 例如,警示規則範圍可以設定為:

  • 單一資料庫
  • 彈性集區
  • 資源群組中的所有資料庫或彈性集區
  • 訂用帳戶在 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 通知。 警示規則只有在解決先前的警示之後才會觸發新的警示。 可設定狀態的警示可避免經常收到關於持續狀況的通知。 如需可設定狀態的警示和無狀態警示的詳細資訊,請參閱警示和狀態