簡體   English   中英

有沒有辦法從 Azure SQL 數據庫資源中獲取分配的存儲數據百分比指標以創建警報?

[英]Is there a way to get the allocated storage data percentage metric from Azure SQL database resource for creating an alert?

我想創建一個警報來監視 Azure 中為 SQL 數據庫分配的數據存儲,以便我知道它何時將達到其分配的數據存儲容量。 理想情況下,像storage_percent這樣的東西會很完美,因為它監控百分比而不是字節。 但我想跟蹤分配的數據存儲。

以下是可以通過警報監控的指標列表: https : //docs.microsoft.com/en-us/azure/azure-monitor/platform/metrics-supported#microsoftsqlserversdatabases

沒有任何可以跟蹤百分比的指標,只有字節 allocation_data_storageBytes單位)

我目前的解決方法是以字節為單位檢索分配的數據存儲,然后將該值乘以我希望收到警報的閾值。

e.g.
threshold to trigger alert is 75%
allocated_data_storage is 4 GB
alert me when database storage is greater than 4 GB * 0.75 = 3 GB

但這似乎並不可靠,因為數據庫易於按比例放大/縮小數據大小。 因此,如果分配的數據存儲增加到 10 GB,我的警報仍將監視 3 GB 以下的數據存儲,現在低於分配數據存儲的 75%。

我們可以在 Portal 上獲取已用空間/分配空間/最大存儲大小: 在此處輸入圖片說明

或者您在數據庫中使用波紋管查詢:

-- Connect to database
-- Get database data space allocated in MB, max database stroage in MB and database data space allocated used in MB
SELECT SUM(size/128.0) AS DatabaseDataSpaceAllocatedInMB, 
SUM(max_size/128.0) AS DatabaseDataSpaceMaxInMB,
SUM (CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0) AS DatabaseDataSpaceUsedInMB 
FROM sys.database_files
GROUP BY type_desc
HAVING type_desc = 'ROWS'

在此處輸入圖片說明

您可以使用值創建一個新查詢以獲取警報值以構建警報規則,例如AllocatedSpace/UsedSpace

由於 Azure SQL 數據庫不支持發送電子郵件功能,我們可以使用邏輯應用程序來觸發它:

  1. 創建循環觸發器:調度運行觸發器。
  2. 添加執行 SQL 查詢操作:以獲取警報值。
  3. 添加條件:判斷警報值是否大於75,如果為真,則發送郵件!

邏輯應用示例概述:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM