我正在繪製包含來自多個rrd數據文件的變量的圖。我還會在圖上顯示每個變量的最後一個值。當我使用時,例如「CDEF:A = a,UN,0,a,IF,8,」,然後打印圖表上變量A的最後一個值,取決於我何時加載圖表,最後一個值即使rrd數據文件中最後一次更新的值不是0,A也會變爲0.我正在使用rrdtool 1.4.8。當我使用「CDEF:A = a,8,」定義A時,這不會發生。當使用IF和UN將未知值設置爲0時,有時在rrd圖中最後的值變爲0
0
A
回答
0
這是因爲您正在使用多個RRD文件,並且它們的更新和查詢之間存在爭用條件。我看到這種情況發生在通過MRTG數據生成的「Routers2」圖表中,並且該程序添加了特殊計算來避免它。
當您運行圖形時,最後一點是基於當前時間的。但是,我們當前所在的時間段可能未在其中一個源RRD文件中更新。
例如,假設數據每5分鐘更新一次。
- 11:59,RRD文件
A
被更新,而11點55桶現已完成。 - 在12:01,RRD文件
B
已更新,現在已完成12:00存儲桶。 - 在12:03,調用函數。圖表的末尾設置爲12:00,因爲這是最新的可用數據。
- 但是,對於RRD文件
A
,最新的可用數據是11:55,因爲我們尚未進行12:04更新。所以,圖中的最後一個數據點是unknown
。
這就是爲什麼偶爾會在您的某個數據集的末尾出現未知數的原因。這意味着源數據的RRD在當前時間窗口結束時正在更新。
如果您沒有未知測試,那麼該圖形將不會顯示有問題的點(如未知點不繪製)。所以,如果仔細觀察,您會看到圖中的線條早先結束一個像素。
以編程方式避免這種情況的一種方法是獲取所有組件RRD文件的lastupdate
時間,然後使用這些中最早的時間作爲圖形上的結束時間。這是routers2
軟件避免這個問題的方式。
相關問題
- 1. 如何在排序時將'0'值設置爲最後排序
- 2. awk:僅當值爲NULL時將列值設置爲'0'
- 3. 在按鈕點擊時將變量值設置爲0和1
- 4. 當使用Jasper Studio時爲0時,值爲0
- 5. 將NumericUpDown值設置爲浮點數時將變爲0
- 6. 當組中的任何值爲0時,將組內的所有值設置爲0
- 7. cudaMemset未能設置所有值爲0
- 8. 當XOR bin值爲0時丟失0
- 9. 將所有0值設置爲NULL
- 10. 將空值設置爲0,然後在運算符中使用0?
- 11. Python:當作物超出範圍時將值設置爲0
- 12. 如果變量爲null,則用jQuery將該值設置爲0?
- 13. R xts:將時間序列中的所有0值轉換爲最後找到的值不同於0
- 14. MySQL語句總是將值設置爲0當更新設置
- 15. 將雙精度值設置爲0
- 16. 當插入表格時,PHP mysqli將變量設置爲0
- 17. 選擇分鐘值時,列<0,最大值,當列> 0
- 18. 如何在沒有輸入時在edittext中將默認值設置爲0?
- 19. 地圖中的賦值最終爲0?
- 20. 當數組中值爲0它變成 -
- 21. 如何在AmChart的y軸上將最大值設置爲1並將最小值設置爲0?
- 22. 當選擇視圖0時,UIDatePicker將分鐘設置爲1
- 23. 使空數組值設置爲0
- 24. 位操作:在未知數中將位設置爲0
- 25. Sugeno,設置輸出值0和1,爲什麼有時輸出值是0.5
- 26. Mysql和PHP中的空值變爲0
- 27. 當時間設置爲0時即時調用警報
- 28. 如何使用「IF 0然後設置」
- 29. 在MySQL字段設置的所有值設置爲0
- 30. PHP使用時將零值(0)值保存爲MySQL錯誤