平均5つのサンプルを作成し、単一の値を計算したいと思います。
現在の出力-5分の解像度を設定しましたが、5つのサンプルを受け取ります。
$ rrdtool fetch file.rrd AVERAGE -r 300 --start 1200000000 --end 1200000300
1200000000: 1.3938888889e+00
1200000060: 4.9572222222e+00
1200000120: 7.1675000000e+00
1200000180: 1.0982500000e+01
1200000240: 7.6136111111e+00
1200000300: 7.2169444444e+00
望ましい結果:
$ rrdtool fetch file.rrd AVERAGE -r 300 --start 1200000000 --end 1200000300
1200000000: 1.3938888889e+00
1200000300: x.xxxxxxxxxxe+00 - average
RrdtoolまたはPerl、bashなどの他の言語で計算したい...
fetch
コマンドは、生のRRAからのみデータを取得します。要求された粒度のRRAがない場合は、利用可能な最も近いものが使用されますが、追加の計算は実行されません。
1cdp == 5pdpルールを使用して、RRDファイルを作成するときに、RRDファイルに新しいRRAを追加します。例えば
rrdtool create file.rrd -s 60
DS:ds0:GAUGE:120:0:100
RRA:AVERAGE:0.5:1:400 RRA:AVERAGE:0.5:5:400
この例では、400行を設定します。もっと使いたいと思うかもしれません。
5pdp RRAがある場合は、rrdtool fetch -r 300
を使用できます。それ以外の場合、1pdp RRAしかない場合は、60の解像度(1ステップ)しか使用できません。
また、rrdtool xport
を確認することもできます。これにより、(rrdtool graph
と同じ方法で)要約になり得る出力計算値を定義できます。
rrdtool xport --step 300 --start 1200000000 --end 1200000300
--maxrows 400
DEF:value=file.rrd:ds0:AVERAGE
XPORT:value
これは、DSがds0
という名前であると想定しており、必要なRRAがすでにある場合はfetch
を実行するほど効率的ではありません。