0

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 などを示すことがあります。私は何か間違ったことをしていますか?

4

2 に答える 2

0

これがあなたのニーズにどの程度一致するかはわかりませんが、グラフをだましてシステムに接続している個別のユーザー数を表示する方法は次のとおりです。 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'
)
于 2014-02-22T10:28:34.020 に答える