【问题标题】:rrdtool does not keep maxrrdtool 不保持最大值
【发布时间】:2016-01-11 11:18:04
【问题描述】:

我用一个DS创建一个RRD,一个脚本的处理时间,10分钟的步骤。 拥有三个档案,以 MAX 作为聚合函数:一周内的所有值,一个月内的每个小时,两年内的每一天。

rrdtool create RRD --start 1411561343 --step 600s \
DS:processtime:GAUGE:1200:0:U \
RRA:MAX:0.5:1:1008 \
RRA:MAX:0.5:6:744 \
RRA:MAX:0.5:144:732

populate 它来自一个文件,该文件包含从 2014 年 9 月 24 日 14:32:23 (1411561943) 到 2016 年 1 月 11 日 11:07:25 (1452503245) 的所有记录。 最大值为 2015/09/11 14:18:35 (1441973915), 23340。

当我绘制图表或dump rrd 时,我有很多 NaN,我没有看到这个最大值,也没有看到很多其他重要值。 我在rrd中的最大值是<!-- 2015-08-06 02:00:00 CEST / 1438819200 --> <row><v>8.0004250000e+02</v></row>

这是否与时间间隔不完全是 10 分钟,而是在 8 到 12 之间这一事实有关?

如果是这样,有办法改变这种行为吗?

【问题讨论】:

    标签: aggregate-functions rrdtool


    【解决方案1】:

    首先 rrdtool 重新采样数据到--step 中的给定间隔,然后才会进一步处理数据。间隔与纪元时间戳对齐(从 1970-01-01 00:00:00 GMT 开始)。如果您想在较短的时间间隔内获得最大值,则必须降低步长并更频繁地提供数据。

    【讨论】:

      【解决方案2】:

      正如 Tobi 提醒您的那样,无论何时到达,您的样本都将首先被标准化/重新采样为定期 10 分钟的间隔。您不能禁用此行为,除非在时间间隔边界上准确插入数据。

      您的 MAX 值可能与您认为的区间不同。

      RRA:MAX:0.5:1:1008 \
      RRA:MAX:0.5:6:744 \
      RRA:MAX:0.5:144:732
      

      您的 RRA 适用于 1、6 和 144 个样本。由于您的时间间隔为 10 分钟,因此这些 RRA 分别对应于 10 分钟、1 小时和 1 天,并将在该时间间隔内保存最大值归一化样本。

      此外,您的 XFF 为 0.5,这意味着 RRA 必须存在超过 50% 的所需样本才能存储值,并且您的 DS 上的心跳为 20 分钟,这意味着如果存在样本,则样本是未知的这么长的差距。

      您可能想添加一个RRA:AVG:0.5:1:1008 以供参考,以便您可以验证您正在收集的数据并追踪NaN 的来源。

      请注意,当绘制图形或使用 xport 时,如果没有覆盖整个请求时间窗口的适当 RRA,rrdtool 将根据可用数据即时计算 Max。

      您可以使用上述 AVG RRA 验证 MAX 计算,并获取此预聚合数据以与您的 MAX RRA 中存储的值进行比较。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-21
        • 1970-01-01
        • 2023-03-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多