如何在自定义图表中显示平均值,而不是总值?
以前我通过创建自定义.php文件生成集群摘要图表已经成功,如下所述:
http://sourceforge.net/apps/trac/ganglia/wiki/Custom_graphs
但是,到目前为止,我想要显示给定指标的每秒总动作数.但现在,我有一些时序数据,我想显示所有集群节点的平均值(平均值).这是怎么做到的?在我当前的实现中,生成的图表显示了所有节点的总时间值,这没有用.
这是.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;
}
?>
Run Code Online (Sandbox Code Playgroud)
Ganglia 使用的摘要 RRDnum除了sum数据源之外还有一个数据源。该num值指示计算所得的主机数量sum,并且仅在汇总 RRD 中可用。
sum您可以使用 RRDtool CDEF 指令除以来计算所有主机的平均值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
}
Run Code Online (Sandbox Code Playgroud)
此平均值也显示在sample_report.phpganglia-web 附带的文件中。