2015-10-20 54 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