2016-06-27 55 views
0

我想使用rrdtool作爲一個環緩衝器,如果新值到達並且RRA已滿,它會簡單地忘記最早的值。 這甚至可能嗎?使用沒有合併功能的RRDtool

實施例:最舊的值被替換分鐘

rrdtool create database.rrd --step 1 DS:data1:GAUGE:5:U:U RRA:<CF>:0.5:1:1200 

經過20。

謝謝和問候,

彼得

回答

0

您可以通過使用AVG的RRA 1步類型,在你的榜樣呈現consolodation功能無效。

但是,你不能這樣做只是使時間序列和數據規範化無效。

您的數據需要準確到達步驟邊界,否則將調整爲適合一個值,從而更改其值。你的例子使用1s步驟,這使得更簡單;然而它帶來了下一個問題...

RRDTool將始終存儲RRA中的每個安全步驟的值。如果沒有可用數據,則會得到未知數據,或者根據以前的數據推斷值。在你的設置中,你有一個XFF = 0.5,這意味着當沒有數據存儲時你會得到一個未知數。

所以,這是可能的,但RRA總是會有1200個值。如果樣本沒有在特定秒內到達,則會存儲未知數。不管在那個時間窗內收集了多少新樣本,樣本將在20分鐘後立即丟棄;當你查詢RRA時,如果在第二天沒有收集到任何東西,你將會得到'未知'。

此行爲是否符合您的用例需求取決於您。

+0

好的。所以我選擇了:「rrdtool create database.rrd --step 1 DS:data1:GAUGE:20:U:U RRA:AVERAGE:0.99:1:1200」,心跳很長,xff大99% - >沒有未知應該是存儲。問題是:如果我用整數填充RRD,我得到浮動。我拿到了db:「rrdtool fetch database.rrd AVERAGE」,它返回4,8084940000e + 00。我做錯了什麼。它看起來像rrdtool仍然是consolodating的價值觀。我每秒都會「精確地」推送數據。該rrd是否可以計算/關聯rrd中每個值(步入)的每個值,包括「nan」。但是,謝謝你^^ – PeterFox

+0

由於你的RRA只包含1pdp = 1cdp,所以xff並沒有什麼優勢,所以未知組件的比例必然是0%或100%。 當您推送數據時,請使用'rrdtool update $ file.rrd $ value:\'date +%s''',以便在整數時間存儲它以避免數據標準化。 –