2015-10-20 73 views
1

我希望能够看到记录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

当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