You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Get-AzMetric获取Azure VM CPU平均利用率数据异常求助

Azure VM CPU利用率指标数据不符的排查方案

可能的原因及解决方法

  • 时区不匹配
    你脚本里的$st和$et用的是UTC时间(带Z后缀),而Azure门户默认显示本地时区的数据。比如输出里的12/21/2023 11:45:00 AM是UTC时间,转换为本地时区后,可能和你在门户查看的时间窗口完全不对应,导致对比的不是同一段数据。

  • 聚合类型与粒度不匹配
    Get-AzMetric默认返回的聚合结果可能未明确限定,且你设置的TimeGrain 00:15:00是15分钟粒度的平均值,而Azure门户默认展示的可能是1分钟粒度的实时采样值或其他聚合(比如最大值),不同粒度的统计逻辑会导致数值差异。

  • 资源ID错误
    确认$vm.Id对应的是目标VM的正确资源ID,避免因VM对象引用错误,获取了其他VM的指标。可以直接输出$vm.Id,和Azure门户中VM的资源ID做比对。

  • 统计逻辑差异
    Azure Monitor的"Percentage CPU"指标,15分钟粒度的平均值是该窗口内所有采样点的算术平均,而门户中可能展示的是实时瞬时值、峰值或其他统计维度,需要确认两者的统计方式一致再做对比。

修正后的脚本示例

# 将UTC时间转换为本地时区,匹配门户显示的时间范围
$st = [DateTime]::Parse('2023-12-19T12:00:00Z').ToLocalTime()
$et = [DateTime]::Parse('2023-12-21T12:00:00Z').ToLocalTime()

# 明确指定聚合类型,同时获取多粒度数据用于对比
$cpu = Get-AzMetric -ResourceId $vm.Id `
    -TimeGrain 00:01:00, 00:15:00 `
    -StartTime $st `
    -EndTime $et `
    -MetricName "Percentage CPU" `
    -AggregationType Average, Maximum `
    -DetailedOutput

# 格式化输出,方便对比不同粒度和聚合的数据
$cpu.data | Format-Table TimeStamp, Average, Maximum -AutoSize

内容的提问来源于stack exchange,提问作者CoCoBl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 12:48:32