どう?
RRDとRRDToolは、統計データを保存し、それらにグラフを描画する手段として、私たちの生活にしっかりと入っています。 原則として、グラフですべてが明確であれば、凡例フィールドからもう少し利点を引き出すことができます。 特に、一定期間の着信トラフィックなど、データソース(データソース)のすべての値の合計を表示できます。これは、将来の概算に使用できます。 私の例はpnp4nagiosですが、他のすべてのrrdtoolベースのシステムにも当てはまります。
方法
rrdtoolを使用すると、元の関数に基づいて組み込み関数を使用してカスタムデータ表現を指定できます。特に、MIN、MAX、加算、減算などがあります。この場合、TOTAL関数が役立ちます。 彼女がしていることは名前から明らかです-各ギャップのレベルにステップサイズを掛けた値を返します。これにより、インジケーターの合計量が得られます。
元のテンプレートは次のようになりました。
$opt[1] = " --vertical-label \"Traffic\" -b 1000 --title \"Interface Traffic for $hostname / $servicedesc\" ";
$def[1] = "DEF:var1=$rrdfile:$DS[1]:AVERAGE " ;
$def[1] .= "DEF:var2=$rrdfile:$DS[2]:AVERAGE " ;
$def[1] .= "LINE1:var1#003300:\"in \" " ;
$def[1] .= "GPRINT:var1:LAST:\"%7.2lf %Sb/s last\" " ;
$def[1] .= "GPRINT:var1:AVERAGE:\"%7.2lf %Sb/s avg\" " ;
$def[1] .= "GPRINT:var1:MAX:\"%7.2lf %Sb/s max\\n\" " ;
$def[1] .= "LINE1:var2#00ff00:\"out \" " ;
$def[1] .= "GPRINT:var2:LAST:\"%7.2lf %Sb/s last\" " ;
$def[1] .= "GPRINT:var2:AVERAGE:\"%7.2lf %Sb/s avg\" " ;
$def[1] .= "GPRINT:var2:MAX:\"%7.2lf %Sb/s max\\n\" ";
var1(入力トラフィック)およびvar2(出力トラフィック)から2つの新しいデータソースを定義します。
$def[1] .= "VDEF:totalin=var1,TOTAL ";
$def[1] .= "VDEF:totalout=var2,TOTAL ";
変数totalinおよびtotaloutには正確に合計がありますが、それらを凡例に表示するために残ります。
$def[1] .= "GPRINT:totalin:\"%3.2lf %s ttl\\n\" ";
$def[1] .= "GPRINT:totalout:\"%3.2lf %s ttl\\n\" ";
途中で改行を削除すると、結果は次のようになります。
$opt[1] = " --vertical-label \"Traffic\" -b 1000 --title \"Interface Traffic for $hostname / $servicedesc\" ";
$def[1] = "DEF:var1=$rrdfile:$DS[1]:AVERAGE " ;
$def[1] .= "DEF:var2=$rrdfile:$DS[2]:AVERAGE " ;
$def[1] .= "VDEF:totalin=var1,TOTAL ";
$def[1] .= "VDEF:totalout=var2,TOTAL ";
$def[1] .= "LINE1:var1#003300:\"in \" " ;
$def[1] .= "GPRINT:var1:LAST:\"%7.2lf %Sb/s last\" " ;
$def[1] .= "GPRINT:var1:AVERAGE:\"%7.2lf %Sb/s avg\" " ;
$def[1] .= "GPRINT:var1:MAX:\"%7.2lf %Sb/s max\" " ;
$def[1] .= "GPRINT:totalin:\"%3.2lf %s ttl\\n\" ";
$def[1] .= "LINE1:var2#00ff00:\"out \" " ;
$def[1] .= "GPRINT:var2:LAST:\"%7.2lf %sb/s last\" " ;
$def[1] .= "GPRINT:var2:AVERAGE:\"%7.2lf %Sb/s avg\" " ;
$def[1] .= "GPRINT:var2:MAX:\"%7.2lf %Sb/s max\" ";
$def[1] .= "GPRINT:totalout:\"%3.2lf %s ttl\\n\" ";
合計:

になりました:

さて、Nginxがなくても、高
だった:

になりました:
