5

合計値ではなく、カスタムグラフで平均値をどのように表示しますか?

以前は、ここで説明するように、カスタム.phpファイルを作成してクラスターサマリーグラフを生成することに成功しました。

http://sourceforge.net/apps/trac/ganglia/wiki/Custom_graphs

ただし、これまでは、特定のメトリックの1秒あたりの合計アクション数を表示したいと考えていました。しかし今、私はすべてのクラスターノードの平均(平均)メトリック値を表示したいいくつかのタイミングデータを持っています。これはどのように行われますか?私の現在の実装では、生成されたグラフはすべてのノードの合計時間値を示していますが、これは役に立ちません。

これが.phpです:

<?php

/* Pass in by reference! */
function graph_jmx_times_report ( &$rrdtool_graph ) { 

    global $context,
           $hostname,
           $graph_var,
           $range,
           $rrd_dir,
           $size,
           $strip_domainname;

    if ($strip_domainname) {
       $hostname = strip_domainname($hostname);
    }   

    $jmx = $graph_var;
    $title = $jmx.' Processing Time';
    if ($context != 'host') {
       $rrdtool_graph['title'] = $title;
    } else {
       $rrdtool_graph['title'] = "$hostname $title last $range";
    }   
    $rrdtool_graph['lower-limit']    = '0';
    $rrdtool_graph['vertical-label'] = 'milliseconds';
        $rrdtool_graph['extras']         = '--rigid --base 1024';
    $rrdtool_graph['height'] += ($size == 'medium') ? 89 : 0;

        $series = "DEF:'tot_time'='${rrd_dir}/jmx_tomcat_proc_time_ms.rrd':'sum':AVERAGE"
                ."DEF:'fc_time'='${rrd_dir}/jmx_tomcat_freqcap_lookup_time_75.rrd':'sum':AVERAGE "
                ."DEF:'ro_time'='${rrd_dir}/jmx_tomcat_readonly_lookup_time_75.rrd':'sum':AVERAGE "
                ."DEF:'rt_time'='${rrd_dir}/jmx_tomcat_realtime_lookup_time_75.rrd':'sum':AVERAGE "
                ."AREA:'tot_time'#CFF1FC:'' "
                ."LINE2:'fc_time'#F19A2A:'Freq Cap 75' "
                ."LINE2:'ro_time'#66CC33:'Read-only 75' "
                ."LINE2:'rt_time'#CC99CC:'Realtime 75' "
                ."LINE2:'tot_time'#20ABD9:'Processing Time' "
        ;

    $rrdtool_graph['series'] = $series;

    return $rrdtool_graph;

}

?>
4

1 に答える 1

3

Ganglia が使用するサマリー RRD には、numデータ ソースに加えてsumデータ ソースがあります。このnum値は、sumが計算されたホストの数を示し、サマリー RRD でのみ使用できます。

RRDtool CDEF 命令を使用して、 で割ることsumにより、すべてのホストの平均を計算できますnum

次に例を示します。

if ($context != 'host') { // cluster or grid summary graph context
    $series = 
     "'DEF:fc_time_sum=${rrd_dir}/jmx_tomcat_freqcap_lookup_time_75.rrd:sum:AVERAGE' " 
    ."'DEF:fc_time_num=${rrd_dir}/jmx_tomcat_freqcap_lookup_time_75.rrd:num:AVERAGE' " 
    ."'CDEF:avg_fc_time=fc_time_sum,fc_time_num,/' " 
    ."'LINE2:avg_fc_time#0000FF:Average Freq Cap 75' ";
} else { // single host graph context
    //here you can't use the num data source
}

この平均化はsample_report.php、ganglia-web に含まれるファイルにも表示されます。

于 2013-02-02T19:41:38.683 に答える