如何获取Azure SQL Database的请求数与平均响应时间指标?
获取Azure SQL Database请求数量与平均响应时间的方法
一、通过Log Analytics获取
1. 请求数量
Azure SQL Database的请求数量可通过AzureDiagnostics表查询,核心字段为request_count,需筛选ResourceType为MICROSOFT.SQL/SERVERS/DATABASES并指定目标数据库名称。示例Kusto查询语句:
AzureDiagnostics | where ResourceType == "MICROSOFT.SQL/SERVERS/DATABASES" | where DatabaseName == "<你的数据库名称>" | summarize TotalRequests = sum(request_count) by bin(TimeGenerated, 5m) | sort by TimeGenerated desc
2. 数据库平均响应时间
平均响应时间可通过duration_ms字段结合请求数计算得出,示例Kusto查询:
AzureDiagnostics | where ResourceType == "MICROSOFT.SQL/SERVERS/DATABASES" | where DatabaseName == "<你的数据库名称>" | summarize TotalDuration = sum(duration_ms), TotalRequests = sum(request_count) by bin(TimeGenerated, 5m) | extend AvgResponseTime = TotalDuration / TotalRequests | sort by TimeGenerated desc
注意:需确保目标Azure SQL Database已开启诊断日志收集,并将日志发送至Log Analytics工作区,否则
AzureDiagnostics表不会包含相关数据。
二、通过Azure Monitor API获取
1. 请求数量指标
调用Azure Monitor指标API,指定指标名称为sqlserver.database.requests,聚合方式选择Sum获取总请求数。REST API请求示例:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/providers/microsoft.insights/metrics?api-version=2018-01-01&metricnames=sqlserver.database.requests&aggregation=Sum
2. 平均响应时间指标
指标名称为sqlserver.database.request.duration,聚合方式选择Average即可获取毫秒级的平均响应时间。REST API请求示例:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/providers/microsoft.insights/metrics?api-version=2018-01-01&metricnames=sqlserver.database.request.duration&aggregation=Average
调用API需通过Azure AD完成身份验证,确保操作账号或服务主体拥有监控数据读取权限。
内容的提问来源于stack exchange,提问作者pierredupont
相关产品推荐
相关产品推荐

