[英]rrdtool graph ignoring --step?
我有包含多個月 PDP 數據(5 分鍾間隔)的 RRD 文件。
對於一般用途的圖表,它很好,當 rrdtool 自動決定使用哪個 RRA 來顯示圖表時。
但是我的一些圖表在圖例中包含 95-Percentile 數據,我需要從“精確的”5 分鍾間隔數據中計算出來,因為從聚合數據點計算 Percentile 可能(本質上)導致顯着不正確的值。 '
fetch
數據,我將獲得正確的數據來自己計算百分位數width
而變化,即使時間范圍相同,並且整個時間范圍都有 300 秒的數據圖形:
...
--step 300
...
"VDEF:perca=a,95,PERCENT",
...
創建與:
'-s', '300',
...
"RRA:AVERAGE:0.5:1:53568", # 6 months pdp
"RRA:AVERAGE:0.5:12:8904", # 1 hour, 1 year.
"RRA:AVERAGE:0.5:288:730", # 1 day, 2 years.
"RRA:AVERAGE:0.5:2016:520", # 1 week, 10 years.
"RRA:MAX:0.5:1:600", # 5 min: 2 days
"RRA:MAX:0.5:12:8904", # 1 hour, 1 year.
"RRA:MAX:0.5:288:730", # 1 day, 2 years.
"RRA:MAX:0.5:2016:520", # 1 week, 10 years
這是因為在VDEF
計算之前執行了數據整合。
盡管您的rrdtool graph
arguments 指定了 300 秒的步長,但這比圖的一個像素要小,因此在您到達VDEF
之前,數據系列會進一步平均。 所有CDEF
和VDEF
函數將始終使用每像素一個 cdp 的時間序列。 從 RRDTool 手冊:
注意:小於一個像素的步長將被忽略。
這意味着,雖然您可以降低數據的分辨率,但不能提高它。 可悲的是,要獲得准確的第 95 個百分位數,您需要更高分辨率的數據。
因此,如果您在窄圖中省略--step 300
,將會發生以下情況:
使用--step 300
過程略有不同,但結果相同:
因此,您可以看到最終結果是相同的 - 它只是在 RRA 或圖表時間發生 300s -> 1h 整合的地方。
當使用寬圖時,每個像素的時間變得更小,RRDTool 不再需要執行其額外的數據合並,從而導致更准確的計算:
當您使用rrdtool fetch
1 檢索原始數據時,不會發生這種額外的合並,因此您會得到:
您的下一個問題可能是,我該如何阻止這種情況發生? 不幸的答案是你不能。 RRDTool 沒有百分位數類型 CF,因此無法在 RRA 中執行正確的計算(這將是唯一真正的解決方案)。
用於 MRTG 的 Routers2 前端計算圖表的第 95 個百分位數,它的方式是執行高分辨率fetch
以獲取原始數據並在內部計算值,然后在制作圖表時將其傳遞給HRULE
。 換句話說,由於您遇到的這個問題,它根本不使用VDEF
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.