我试图从特定主机上的每个VM中提取各种统计信息。一切都有效,除了$maxcpu
部分....我是PS菜鸟,所以我只是尝试将其模型化为我提取的其他统计数据,但将CPU计数器更改为.maximum
而不是.average
。通过我的实验,我要么在CSV中得到一个空白条目,要么崩溃并给出错误:
The metric counter "cpu.usagemhz.maximum" doesn't exist for entity "XXXX"
。
foreach ($vmhost in $hosts) {
$vms = Get-VM -Location $vmhost
$vmHost | echo
foreach ($vm in $vms) {
" " + $vm | echo
$avgcpu = @{N="Cpu.UsageMhz.Average";E={[Math]::Round((($_ |Get-Stat -Stat cpu.usagemhz.average -Start (Get-Date).AddDays(-7) | Measure-Object Value -Average).Average),2)}}
$maxcpu = @{N="Cpu.UsageMhz.Maximum";E={[Math]::Round((($_ |Get-Stat -Stat cpu.usagemhz.maximum -Start (Get-Date).AddDays(-7) | Measure-Object Value -Maximum).Maximum),2)}}
$avgmem = @{N="Mem.Consumed.Average";E={[Math]::Round((($_ |Get-Stat -Stat mem.consumed.average -Start (Get-Date).AddDays(-7) | Measure-Object Value -Average).Average),2)/1000}}
$vm | Select Host, Name, NumCpu, $avgcpu, $maxcpu, MemoryMB, $avgmem | Export-Csv -Append "somewhere\csv.csv"
}
}
答案 0 :(得分:1)
这个旧的documentation表示cpu.usagemhz.max在统计级别4中可用。@ user3290553,如果已经改变为5.5,请随时解释您是如何获得该信息的。
如果有任何帮助,可以在相关问题here上找到一些问题排查记录。
编辑 - 这里是5.5 reference。 Level级别中的(4)
似乎表示cpu.usagemhz.max在统计级别4中可用。要检查thick / C#/非Web Web客户端中的统计级别,请在vCenter Server Settings>下查看。统计。
答案 1 :(得分:0)
问题似乎是我们只运行vSphere 5.0,但.maximum
功能在5.5中可用。