我希望能够看到记录RRD中的最后一个值的时间。
我有以下内容来打印最后记录的值,这样就可以了。
DEF:temp1=temperatures2.rrd:iliakos:AVERAGE
GPRINT:temp1:LAST:"Current\:%8.1lf %s"
我在文档中找到了:strftime,我尝试过:
GPRINT:temp1:LAST:"%H\:%M":strftime
但得到了:
graph.sh: line 21: GPRINT:temp1:LAST:%H\:%M:strftime: command not found
我仔细阅读了文档,并提到strftime应用于VDEF 所以我尝试了以下内容:
VDEF:vtemp1=temp1,AVERAGE
GPRINT:vtemp1:LAST:"%H\:%M":strftime
但又得到了:
ERROR: I don't understand ':%H\:%M:strftime' in command: 'GPRINT:vtemp1:LAST:%H\:%M:strftime'
我认为rrd中的值具有关联的记录时间戳,正如我们从转储中看到的那样。我们如何在此时间戳中访问此访问权限并在图表命令中使用它?
由于
答案 0 :(得分:1)
当rrdtool图需要来自rrd文件的数据时,它只是说明一个时间范围,作为响应,它会获得传递的数据。无论rrd文件实际上是否包含该时间范围或注释的数据。如果没有可用数据,则传递给图形组件的数据由NaN组成。
所以你最多可以回答的问题是,最后一次'已知'数据已写入rrd文件。
您尝试使用strftime
功能是好的,但您需要跳过另一个环。对于数据可用的所有时间点,您需要准备一些随时间增长的数据。这就是CDEF
完成的事情。然后,您可以使用VDEF
确定最大count
值,并检索与该值关联的时间戳。
rrdtool graph x.png \
DEF:data=x.rrd:x:AVERAGE \
CDEF:count=data,UN,UNKN,COUNT,IF \
VDEF:last=count,MAXIMUM \
GPRINT:last:%H\:%M\:%S:strftime