rrdtoolでのメトリック測定の合計

どう?


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がなくても、高負荷サイトとその統計で何百万ものヒットを数えることはできません。

だった:



だった



になりました:



画像







All Articles