【问题标题】:RRDTOOL one second logging, values missingRRDTOOL 一秒记录,缺少值
【发布时间】:2015-05-20 10:55:50
【问题描述】:

我用 RRDTOOL 花了两个多月的时间来了解如何在图表上存储和可视化数据。我现在非常接近我的目标,但由于某种原因,我不明白为什么在我的情况下某些数据被认为是 NaN。

我以千兆字节为单位计算日志文件的行数,并将结果提供给 rrd 数据库以可视化事件的发生。数据库的步进是 60 秒,只要数据可用,数据就会以秒为基础插入,因此不能保证下一个时间戳会在心跳内或步进内。有时几分钟没有数据。

如果有这么大的距离,我的数据大多被认为是 NaN。

b1_5D.rrd 1420068436:1 1420069461:1 1420073558:1 1420074583:1 1420076632:1 1420077656:1 1420079707:1 1420080732:1 1420082782:1 1420083807:1 1420086881:1 1420087907:1 1420089959:1 1420090983:1 1420094055:1 1420095080:1 1420097132:1 1420098158:1 1420103284:1 1420104308:1 1420107380:1 1420108403:1 1420117622:1 1420118646:1 1420121717:1 1420122743:1 1420124792:1 1420125815:1 1420131960:1 1420134007:1 1420147326:1 1420148352:1

rrdtool create b1_4A.rrd --start 1420066799 --step 60 DS:Value:GAUGE:120:0:U RRA:AVERAGE:0.5:1:1440 RRA:AVERAGE:0.5:10:1008 RRA:AVERAGE:0.5 :30:1440 RRA:AVERAGE:0.5:360:1460

上面给了我上面输入的一个空图。 如果我延长心跳,它将用相同的数据填补时间空白。我尝试插入零值,但这会平均计数并将结果以密耳为单位。

也许我对 RRDTool 有什么误解。 如果有人能解释我做错了什么,那就太好了。

谢谢。

【问题讨论】:

    标签: graph rrdtool


    【解决方案1】:

    听起来您的数据(在不规则时间基于事件)不适合 RRD 结构。 RRD 更喜欢以恒定、定期的间隔保存其数据,并将强制输入数据以满足其要求。

    您的 RRD 被定义为有 60 秒的步数和 120 秒的心跳。这意味着它预计每 60 秒采样一次,并且间隔不超过 120 秒。

    您的 DS 是一个仪表,因此您输入的值(在您的示例中都是“1”)将是存储的值,经过任何时间标准化。

    如果您增加心跳,那么在此时间内收到的值将用于进行线性近似,以填充自上一个样本以来的所有样本。这就是为什么这样做会用相同的数据填补空白。

    由于您的步长是 60 秒,因此最小采样时间 sidth 将是 1 分钟。

    由于您始终存储“1”,因此您的图表将显示“1”(当在心跳窗口中收到样本时)或未知(当心跳过期时)。

    换句话说,您的图表准确地显示了您提供的内容。您的数据每 1 分钟被强制转换为一组常规数值,每个数值为 1 或未知。

    【讨论】:

    • 您好,感谢您快速详细的回复,非常感谢。我之前确实尝试过 1s 步骤并每秒钟输入数据库,如果下一个时间戳没有数据,我只是插入零值。不幸的是,它给了我以密耳为单位的值,看不出原因。你认为实际上 rrdtool 不能满足我对这份工作的要求吗?
    • 我认为,在这种情况下,您最好使用诸如 mySql 之类的数据库,您可以在其中不定期地存储一系列事件。您的数据不仅没有固定的时间间隔,而且也没有度量值——您只是每次都存储 1 并想要项目计数。 SQL 数据库(mysql、postgres、msql、MSSQL、oracle...)似乎更合适。
    猜你喜欢
    • 1970-01-01
    • 2019-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 2012-02-07
    • 2012-02-12
    相关资源
    最近更新 更多