我在玩RRDTool,但它显示了错误的值。我有一个小python脚本:
import sys
import rrdtool
import time
i = 0
rrdtool.create(
'tempo.rrd',
'--step', '10',
'DS:temp:GAUGE:20:-40:100',
'RRA:LAST:0.5:1:1500'
)
while 1:
ret = rrdtool.update('tempo.rrd','N:' + `i`);
print "i %i" % i
rrdtool.graph(
'test.png',
'--imgformat', 'PNG',
'--width', '540',
'--height', '200',
'--start', "-%i" % 60,
'--end', "-1",
'--vertical-label', 'Temperatura',
'--title', 'Temperatura lauke',
'--lower-limit', '-1',
'DEF:actualtemp=tempo.rrd:temp:LAST',
'LINE1:actualtemp#ff0000:Actual',
'GPRINT:actualtemp:LAST:Actual %0.1lf C'
)
i += 1
time.sleep(10)在插入0、1、2之后,我得到了带有错误值的图形- http://i.imgur.com/rfWWDMm.png (对不起,我不能发布图像)。如您所见,插入0之后,图显示0,插入1之后,图显示0.8,插入2后,图显示1.8。有时插入1后,图表显示0.6,依此类推。我做错了什么吗?
发布于 2014-02-22 10:28:34
我不知道这在多大程度上能满足您的需要,但这就是我如何欺骗我的图形,以显示与我的系统连接的离散用户数:我使用CEIL算术算子。这并不意味着它是准确的,只是比0.324在线用户更令人满意。
根据我用来操作rrds的工具作为命令行显示出来的内容,我希望您的代码看起来像
rrdtool.graph(
'test.png',
'--imgformat', 'PNG',
'--width', '540',
'--height', '200',
'--start', "-%i" % 60,
'--end', "-1",
'--vertical-label', 'Temperatura',
'--title', 'Temperatura lauke',
'--lower-limit', '-1',
'DEF:actualtemp=tempo.rrd:temp:LAST',
'CDEF:ACTUALTEMP=actualtemp,CEIL',
'LINE1:ACTUALTEMP#ff0000:Actual',
'GPRINT:ACTUALTEMP:LAST:Actual %0.1lf C'
)https://stackoverflow.com/questions/18924450
复制相似问题