2017-04-04 136 views
1

作为上面的标题,我想在rrd数据库中存储多个数据,以便稍后可以执行一个温度图。rrdtool更新错误(nan)

echo rrdtool update rn23.rrd `/ops/bin/finf | awk '$1 == "rn23" { print $2 ":" $11 }'`

输出是:当我使用awk命令

我的名为数据库rn23.rrd

rrdtool update rn23.rrd 1491273800:48

然后,我删除 “回声”更新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

做任何你们知道为什么只承认时间戳,但不是温度?以及如何解决这个问题?

回答

0

不知道你的RRD-IE的结构,你如何定义它,DS和RRA定义 - 这是不可能确定的,但我相当肯定你对RRDTool的工作原理有一个基本的误解。

RRDTool不是一个关系数据库,它完全按照您提供的那样存储一组记录。相反,它一些额外consolodation步骤存储之前:

  • 数据标准化
  • 率的计算
  • Consolodation到的RRA

这些都可以在你可能没有想到的方式调整您的数据。主要的是第二步,其中需要至少两个归一化数据点来完成。

当你打电话给rrdtool fetch时,你实际上是在查询RRA,如果连锁开始时还没有足够的数据,你在RRA中没有任何东西。

只有一个数据样本,您甚至不可能有一个完整的PDP(主要数据点),即使您有,您的RRA中也可能没有CDP(合并数据点),具体取决于您的RRD间隔大小和最小定义的RRA中CDP中的PDP数量。

如果这是一个有点吃不消了你,再有就是一个很好的一套教程这里由难以拼写姓的亚历克斯: http://rrdtool.vandenbogaerdt.nl/

的TLDR是:给它更多的数据点!以RRD间隔(600s?)提交至少3个间隔的样本;从你的发帖中,我猜你有300秒的间隔和1cdp = 1pdp RRA的定义,但是如果你的间隔是60秒,你可能需要在60秒间隔7或更多。然后你会看到RRA中出现的数据点。