[英]Adding values from multiple .rrd file
問題=====>基本上,三個部門生成了三個.rrd。 從中我們獲取三個值(MIN,MAX,CURRENT)並以3x3格式打印。 有一個python腳本可以做到這一點。
例如-
部門1:Min = 10 Max = 20 Cur = 15
Dept2:最小值= 0最大值= 10曲線= 5
部門3:Min = 10 Max = 30 Cur = 25
現在,我想將這些值相加(最小值,最大值,當前值)並打印在一行中。
例如-
部門:最小值= 20最大值= 60閾值= 45
我面臨的問題=====>無論我寫什么CDEF,我都在打破圖表。 :(這是我討厭的部分,因為我沒有收到任何錯誤消息。
據我了解(如果我錯了,請糾正我)我肯定不能在返回圖形時將值存儲在程序的任何地方。 在這種情況下添加值的正確方法是什么。
如果我對問題的描述不夠詳細,請告訴我。
您可以使用VDEF對CDEF的總和執行此操作。
DEF:a=dept1.rrd:ds0:AVERAGE
DEF:b=dept2.rrd:ds0:AVERAGE
DEF:maxa=dept1.rrd:ds0:MAXIMUM
DEF:maxb=dept2.rrd:ds0:MAXIMUM
CDEF:maxall=maxa,maxb,+
CDEF:all=a,b,+
VDEF:maxalltime=maxall,MAXIMUM
VDEF:alltimeavg=all,AVERAGE
PRINT:maxalltime:Max=%f
PRINT:alltimeavg:Avg=%f
LINE:all#ff0000:AllDepartments
但是,您應該注意,除了具有最高粒度的形式以外,最小值和最大值總計將是錯誤的! 這是因為max(a+b) != max(a) + max(b)
。 如果在存儲時不計算最小/最大合計,則在顯示時粒度將消失。
例如,如果a = (1, 2, 3)
和b = (3, 2, 1)
,則max(a) + max(b) = 6
; 但是,實際上在任何時間點的最大值都是4。使用min(a) + min(b)
也會遇到相同的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.