[英]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_storage有Bytes单位)
我目前的解决方法是以字节为单位检索分配的数据存储,然后将该值乘以我希望收到警报的阈值。
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 数据库不支持发送电子邮件功能,我们可以使用逻辑应用程序来触发它:
逻辑应用示例概述:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.