【问题标题】:Stats object from Get-Stats does not match the "-Start" parameter: PowerCLIGet-Stats 中的 Stats 对象与“-Start”参数不匹配:PowerCLI
【发布时间】:2018-03-15 13:19:42
【问题描述】:

我正在编写一个脚本来拉取 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的正常行为吗?

【问题讨论】:

    标签: powershell vmware powershell-3.0 powercli


    【解决方案1】:

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

    Archived stats

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

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

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

    上个月:上个月的统计数据采用过去一周的统计数据并将其汇总,因此每 2 小时有 1 个数据点。因此,有 12 个数据 每天点数和每月 360 点(每​​月 30 天)。 过去一年:过去一年的统计数据采用过去一个月的统计数据并将它们汇总起来,因此每天有 1 个数据点。因此,有 365 个数据 每年的积分。”

    【讨论】:

    • 谢谢,我有预感正在发生某些事情,导致统计数据根本不存在,无法通过 get-stats 检索。我不知道汇总发生得如此频繁,并且在那之后粒度统计数据变得不可用。
    猜你喜欢
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    • 2021-05-21
    • 2013-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多