【问题标题】:Using RRDtool without consolidation function使用没有合并功能的 RRDtool
【发布时间】:2016-06-29 06:31:29
【问题描述】:

我想将 rrdtool 用作环形缓冲区,如果新值到达并且 RRA 已满,它只会忘记最旧的值。 这甚至可能吗?

例子:

rrdtool create database.rrd --step 1  DS:data1:GAUGE:5:U:U RRA:<CF>:0.5:1:1200 

20 分钟后,最旧的值被替换。

谢谢你的问候,

彼得

【问题讨论】:

    标签: rrdtool rrd


    【解决方案1】:

    您可以使用 AVG 类型的 1 步 RRA 将 consolodation 函数渲染为 null,如您的示例所示。

    但是,您不能简单地取消时间序列和数据规范化。

    您的数据需要准确地到达一个步骤边界,否则它们将被调整以适应一个,从而改变它们的值。您的示例使用 1s 步骤,这使得这更加简单;然而它带来了下一个问题......

    RRDTool 将始终在每个合并步骤将值存储在 RRA 中。如果没有可用的数据,那么您将得到一个未知数,或者将根据以前的数据推断出一个值。在您的设置中,您有一个 XFF=0.5,这意味着当没有存储数据时您会得到一个未知数。

    所以,这是可能的,但 RRA 中总是有 1200 个值。如果样本在特定秒内没有到达,则将存储一个未知数。无论在该时间窗口内收集了多少新样本,样本将在 20 分钟后立即丢弃;当您查询 RRA 时,如果在那一秒内没有收集任何内容,您将得到“未知”。

    此行为是否符合您的用例要求取决于您。

    【讨论】:

    • 好的。所以我选择了:“rrdtool create database.rrd --step 1 DS:data1:GAUGE:20:U:U RRA:AVERAGE:0.99:1:1200”,心跳很长,xff 99%->no unkown 应该是存储。问题是:如果我用整数填充 RRD,我会得到浮点数。我使用以下命令获取数据库:“rrdtool fetch database.rrd AVERAGE”,它返回 3,8084940000e+00 为 4。我做错了什么吗?看起来 rrdtool 仍在安慰这些值。我每秒都“精确地”推送数据。 rrd 是否可以计算/关联 rrd 中每个值(包括“nan”)的每个值。不过谢谢^^
    • 大 xff 没有任何影响,因为您的 RRA 仅包含 1pdp=1cdp - 因此未知成分的比例必然为 0% 或 100%。推送数据时,请使用rrdtool update $file.rrd $value:`date +%s`,以便将其存储为整数时间,以避免数据规范化。
    猜你喜欢
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 2018-12-24
    • 2013-12-05
    • 1970-01-01
    • 2010-11-04
    • 2019-09-11
    • 1970-01-01
    相关资源
    最近更新 更多