Azure应用服务计划CPU使用率脚本返回Null,需获取最大CPU百分比指标
解决Azure应用服务计划CPU使用率最大值脚本查询返回Null的问题
PowerShell 解决方案
使用Get-AzMetric命令时,需确保参数匹配门户使用的指标维度、时间范围和聚合方式,以下是可行的脚本示例:
# 替换为你的资源组名称和应用服务计划名称 $resourceGroupName = "your-resource-group" $appServicePlanName = "your-app-service-plan" # 查询过去24小时内的CPU使用率最大值 Get-AzMetric -ResourceGroupName $resourceGroupName ` -ResourceName $appServicePlanName ` -ResourceType "Microsoft.Web/serverfarms" ` -MetricName "CpuPercentage" ` -AggregationType "Maximum" ` -StartTime (Get-Date).AddHours(-24) ` -EndTime (Get-Date)
PowerShell 注意事项
- 确认
ResourceType为Microsoft.Web/serverfarms,这是应用服务计划的正确资源类型 - 时间范围需与Azure门户中查看的范围一致,若门户看的是过去1小时,就把
AddHours(-24)改成AddHours(-1) - 如果计划包含多个实例,可添加
-Dimension "InstanceId"查看每个实例的最大值,或保持默认聚合整个计划的最大值
Bash 解决方案
使用Azure CLI的az monitor metrics query命令,参数配置需对齐门户的指标设置,示例脚本如下:
# 替换为你的资源组名称和应用服务计划名称 RESOURCE_GROUP="your-resource-group" ASP_NAME="your-app-service-plan" # 查询过去24小时的CPU使用率最大值 az monitor metrics query \ --resource-group $RESOURCE_GROUP \ --resource $ASP_NAME \ --resource-type "Microsoft.Web/serverfarms" \ --metric "CpuPercentage" \ --aggregation "Maximum" \ --start-time 24h ago \ --end-time now
Bash 注意事项
- 若脚本返回空,可添加
--verbose参数查看详细请求日志,确认是否存在权限或参数错误 - 部分地区的Azure环境可能需要指定
--location参数,确保与应用服务计划的区域一致
通用排查要点
- 指标名称验证:Azure应用服务计划的CPU使用率指标固定为
CpuPercentage,不要误写为CPUUsage或其他名称 - 聚合方式匹配:门户中显示的"最大值"对应脚本中的
Maximum聚合类型,不要用Average或Total - 时间范围对齐:如果脚本查询的时间窗口内没有数据(比如计划刚创建),也会返回Null,需调整时间范围到有数据的时段
- 权限检查:执行脚本的账号需拥有
Monitoring Reader或更高权限,确保能读取指标数据
内容的提问来源于stack exchange,提问作者sri nath
相关产品推荐
相关产品推荐

