打印最长值的记录时间

时间:2015-10-20 13:06:45

标签: rrdtool

我希望能够看到记录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中的值具有关联的记录时间戳,正如我们从转储中看到的那样。我们如何在此时间戳中访问此访问权限并在图表命令中使用它?

由于

1 个答案:

答案 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