正如上面的标题,我想要在rrd数据库中存储多个数据,以便以后可以执行温度图。
我的数据库名为rn23.rrd
当我使用awk命令时:
echo rrdtool update rn23.rrd `/ops/bin/finf | awk '$1 == "rn23" { print $2 ":" $11 }'`
输出为:
rrdtool update rn23.rrd 1491273800:48
然后,我删除"echo“来更新rn23.rrd中的数据:
rrdtool update rn23.rrd `/ops/bin/finf | awk '$1 == "rn23" { print $2 ":" $11 }'`
但是当我再次尝试使用以下命令来获取数据时:
rrdtool fetch rn23.rrd MAX --start 1491210243 --end now
结果显示:1491270300: -nan 1491270600: -nan 1491270900: -nan 1491271200: -nan 1491271500: -nan 1491271800: -nan 1491272100: -nan 1491272400: -nan 1491272700: -nan 1491273000: -nan 1491273300: -nan
你们知道为什么它只识别时间戳而不识别温度吗?如何解决这个问题呢?
发布于 2017-04-06 06:07:08
如果不知道RRD的结构-- IE、如何定义它、DS和RRA定义--就不可能确定,但我敢肯定您对RRDTool的工作原理有一个基本的误解。
RRDTool不是一个关系数据库,它存储的一组记录与您提供的记录完全相同。取而代之的是,它在存储之前执行几个额外的调整步骤:
将rates
它们可以以您可能意想不到的方式调整您的数据。主要的一步是第二步,它需要至少两个归一化数据点才能完成。
当您调用rrdtool fetch时,您实际上是在查询RRA,如果链的开始部分还没有足够的数据,那么RRA中就不会有任何东西。
只有一个数据样本,你不太可能有一个完整的PDP (主数据点),即使你有,你的RRA中可能还没有CDP (联合数据点),这取决于你的RRD间隔大小和你最小定义的RRA中CDP中的PDP数量。
如果这对你来说有点多,那么这里有一组很好的教程,作者是难以拼写的姓氏:http://rrdtool.vandenbogaerdt.nl/。
TLDR是:给它更多的数据点!提交至少3个样本,间隔为RRD间隔(600s?);从您的帖子中,我猜测您已经定义了300s间隔和1cdp=1pdp RRA,但如果您的间隔是60s,您可能需要7个或更多间隔为60s的间隔。然后,您将开始在RRA中看到一致的数据点。
https://stackoverflow.com/questions/43197447
复制相似问题