LAST值记录打印时间

Print time of recording for LAST value

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

我仔细阅读了文档,它提到在 VDEF 上应用了 strftime 所以我尝试了以下方法:

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

谢谢

当 rrdtool graph 需要来自 rrd 文件的数据时,它会简单地说明一个时间范围,并作为响应获取传递的数据。不管 rrd 文件实际上是否包含该时间范围或注释的数据。如果没有数据可用,则传递给图形组件的数据由 NaN 组成。

所以你最多可以回答的问题是,上次'known'数据已经写入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