Get-Stats中的Stats对象与“-Start”参数:PowerCLI不匹配

时间:2018-03-15 13:19:43

标签: powershell vmware powershell-v3.0 powercli

我正在编写一个脚本来提取VM内存膨胀和准备好的求和统计信息。我想以5分钟的间隔拉出24小时的统计数据。我运行的命令是:

$datetime = Get-Date       #Get the datetime it currently is
$date = $datetime.Date     #Get just the date, starting at midnight
$interval = 5
$statType = "mem.vmmemctl.average", "cpu.ready.summation"

$vmStats = get-stat -Entity $vm -start $date.AddDays(-1) -Finish $date -MaxSamples 10000 -stat $statType -IntervalMins $interval

然而,这样做的结果会给出一组最高$date(今天午夜)的统计数据,但只能追溯到当前时间的当前时间,昨天。

例如,如果get-date返回03/14/2018 10:43:42 AM$date设置为03/14/2018 12:00:00 AM,则使用$date.AddDays(-1)的开始日期时返回的最早统计信息是2018-03-13 10:30:00.000

我不知道发生了什么。我尝试将$date$date.AddDays(-1)同时转换为[date][datetime],我也尝试将午夜值硬编码作为开始和结束日期。似乎没有什么能改变这样一个事实,即最早的统计数据是基于Get-Stat被执行的时间。

使用30分钟或2小时间隔时不会发生这种情况。问题似乎只发生在5分钟的统计间隔。我究竟做错了什么?这是Get-Stat的正常行为吗?

1 个答案:

答案 0 :(得分:0)

您想要的5分钟粒度仅适用于过去24小时。比这更早的统计数据会累积到您观察到的30分钟间隔内(并最终进一步累积)。

Archived stats

  

"是实时统计信息的聚合(汇总)。他们是   以不同的采样间隔汇总并存储在   数据库。我们遵循MRTG标准。

     

过去的一天:过去一天的统计数据采用实时统计数据并将其汇总,以便每5分钟有1个数据点。因此,有   每小时12个数据点,每天288个。

     

过去一周:过去一周的统计数据采用过去一天的统计数据并将其汇总,以便每30分钟有1个数据点。因此,那里   每天48个数据点,每周336个。

     

过去一个月:过去一个月的统计数据采用过去一周的统计数据并将其累计,因此每2小时有1个数据点。因此,有12个数据   每天积分和每月360积分(30天一个月)。       过去的一年:过去一年的统计数据采用了过去一个月的统计数据并将其推高,因此每天有1个数据点。因此,有365个数据   每年积分。"