我正在尝试使用python rrdtool计算总数octets_in。我有这个,但是没有给我正确的输出。
这里是数据样本
[
406.29947919463086
],
[
433.0391666666667
],
[
430.70380365448506
]
我希望总数为1269
我的def,cdef和vdef是
f'DEF:OCTETS_IN={self.file_name}:OCTETS_IN:AVERAGE'
'CDEF:octets_in=OCTETS_IN,PREV,ADDNAN',
'VDEF:out_octets_in_total=octets_in,AVERAGE'
我只能从rrdtool中使用的运算符是AVERAGE,MINIMUM,MAXIMUM和PERCENT,它们都给出错误的结果。
有人知道该怎么做吗?
如果要在一段时间内计算比率变量的总和,则可以使用有用的VDEF函数来计算sum( var x stepsize )
例如,
DEF:octetspersec=file.rrd:IN:AVERAGE
VDEF:octetstotal=octetspersec,TOTAL
现在,octetstotal
根据octetspersec
变量中保存的速率,在图形时间窗口中保存八位字节的总数。
如果您使用的是较旧版本的RRDTool,则可能没有TOTAL
功能。在这种情况下,请使用AVERAGE
,然后乘以STEPWIDTH
和图形的像素宽度。
请注意,如果您的变量已经保存了该间隔的字节数,那么您将不需要乘以步长。由于TOTAL函数会执行此操作(因为它假设变量是一个比率),因此您需要再次将VDEF结果除以STEPWIDTH
。
有关使用RPN功能的更多详细信息,请参见here