如何使用RRDtool更新数据?

5 perl rrdtool rrd

我正在使用RRDtool来存储用于显示图形的数据.我通过RRDs :: update更新RRD,这在尝试重写信息时失败,意味着过去更新数据一段时间(例如有人将系统计时器移回).我得到的错误是:

ERROR: Cannot update /opt/dashboard/rrd/Disk/192.168.120.168_disk_1.rrd with 
'1228032301:24:24' illegal attempt to update using time 1228032301 when last 
update time is 1228050001 (minimum one second step)
Run Code Online (Sandbox Code Playgroud)

我想总是允许重写,我该怎么做?

gen*_*ack 1

根据 RRD 文档,该时间戳编号必须随着每次更新而增加。考虑到您的限制,我将修改您的更新例程,以便如果更新失败,您将捕获异常并重做更新,并将时间字段设置为“N”。这将使 RRDtool 使用当前时间作为更新时间。

或者,如果您不想处理捕获并重试代码,只需修改更新代码以始终使用“N”作为时间值 - 那么更新将始终有效。

快速浏览一下 RRDtool更新命令的文档可能会有所帮助。