如何在PowerShell中配置az monitor命令获取指定时段平均指标并检查阈值?
Azure Monitor Metrics 命令优化:获取5分钟平均CPU使用率并检查阈值
可以通过添加参数调整指标查询范围、聚合方式和时间粒度,再结合脚本判断阈值,具体操作如下:
1. 调整后的指标查询命令
使用以下命令获取最近5分钟内的平均CPU使用率:
az monitor metrics list --resource <resourceid> --metrics "CpuPercentage" --aggregation Average --interval PT5M --offset PT5M
参数说明:
--aggregation Average:指定返回CPU使用率的平均值,替代默认的聚合逻辑--interval PT5M:将指标数据按5分钟的时间段进行聚合,确保只输出该时段的单一平均值--offset PT5M:限定查询范围为最近5分钟(如果需要指定绝对时间范围,可替换为--start-time "YYYY-MM-DDTHH:MM:SSZ"和--end-time "YYYY-MM-DDTHH:MM:SSZ")
2. 检查阈值(结合脚本)
az monitor metrics list返回JSON格式数据,可通过jq工具提取平均值并判断是否超过75%-80%阈值。示例脚本如下:
# 获取5分钟平均CPU使用率 CPU_AVG=$(az monitor metrics list --resource <resourceid> --metrics "CpuPercentage" --aggregation Average --interval PT5M --offset PT5M | jq -r '.value[0].timeseries[0].data[0].average') # 判断阈值 if (( $(echo "$CPU_AVG > 80" | bc -l) )); then echo "警告:CPU使用率为${CPU_AVG}%,已超过80%阈值" elif (( $(echo "$CPU_AVG > 75" | bc -l) )); then echo "提醒:CPU使用率为${CPU_AVG}%,已超过75%阈值" else echo "正常:CPU使用率为${CPU_AVG}%,在阈值范围内" fi
脚本说明:
jq -r:提取JSON中的平均值并以纯文本格式输出bc -l:处理浮点数值的比较,避免整数比较的精度问题
内容的提问来源于stack exchange,提问作者Tracey
相关产品推荐
相关产品推荐

