rrdtool:非法尝试更新

rrdtool:非法尝试更新

我正在尝试从文本文件中读取“历史”数据,然后将其存储到rrdtool图表中。

我已经创建了一个新的(空的)rrd数据库

$ rrdtool create monitor_db.rrd --step 900 DS:col1:GAUGE:900:0:1000 DS:col2:GAUGE:3600:0:1000 RRA:MAX:0.5:1:1500

然后我尝试更新数据库但收到错误

$ rrdtool update monitor_db.rrd --template col1:col2 1404249680:2:3
ERROR: monitor_db.rrd: illegal attempt to update using time 1404249680 when last update time is 1422146997 (minimum one second step)

声明的时间戳rrdtool是最后更新时间,1422146997是现在,我正尝试插入大约半年前的数据。

我知道您必须按时间顺序插入数据rrdtool,但是数据库应该是空的,因为我已尝试删除它并重新创建它。

答案1

Rrdtool create 有一个--start选项,它可以执行您需要的操作,而无需更改整个系统的时间。默认为 10 秒前。

答案2

在创建数据库之前,我需要更改系统时间。

  1. 设置系统时间,使其早于我的数据集中的第一个时间戳。就我而言:14042496802014-07-02T21:21ISO格式)。
  2. 使用 创建数据库rrdtool create
  3. 恢复系统时间正常。
  4. 使用 更新数据库rrdtool update

编辑文件属性touch -d是不够的,开始日期可能存储在数据库文件的某个地方。

相关内容