This is an old revision of the document!
A few new configuration files were placed in the <GANGLIA HOME>/ directory with the following content:
- maintenance_conf.php
<?php $maint_name = "maintenance"; $computer_metrics = array( "load", "mem", "cpu" ); $maint_rrdfile = array( "ROWS" => array( "rows" => "Total_Power.rrd", "rowscool" => "Calc_total_lcp_cooling_power.rrd", "clcpwaterflow" => "Calc_total_lcp_water_flow.rrd", "clcpairflow" => "Calc_row_lcp_water_flow.rrd" ), "ROW_2" => array( "rows" => "Total_Row_Power.rrd", "rowscool" => "Calc_row_lcp_cooling_power.rrd", "clcpwaterflow" => "Calc_row_lcp_water_flow.rrd", "rowsfan" => "Calc_row_lcp_fan_power.rrd", "clcpairflow" => "Calc_row_lcp_water_flow.rrd" ), "ROW_3" => array( "rows" => "Total_Row_Power.rrd", "rowscool" => "Calc_row_lcp_cooling_power.rrd", "clcpwaterflow" => "Calc_row_lcp_water_flow.rrd", "rowsfan" => "Calc_row_lcp_fan_power.rrd", "clcpairflow" => "Calc_row_lcp_water_flow.rrd" ), "ROW_4" => array( "rows" => "Total_Row_Power.rrd", "rowscool" => "Calc_row_lcp_cooling_power.rrd", "clcpwaterflow" => "Calc_row_lcp_water_flow.rrd", "rowsfan" => "Calc_row_lcp_fan_power.rrd", "clcpairflow" => "Calc_row_lcp_water_flow.rrd" ), "ROW_5" => array( "rows" => "Total_Row_Power.rrd", "rowscool" => "Calc_row_lcp_cooling_power.rrd", "clcpwaterflow" => "Calc_row_lcp_water_flow.rrd", "rowsfan" => "Calc_row_lcp_fan_power.rrd", "clcpairflow" => "Calc_row_lcp_water_flow.rrd" ), "ROW_6" => array( "rows" => "Total_Row_Power.rrd", "rowscool" => "Calc_row_lcp_cooling_power.rrd", "clcpwaterflow" => "Calc_row_lcp_water_flow.rrd", "rowsfan" => "Calc_row_lcp_fan_power.rrd", "clcpairflow" => "Calc_row_lcp_water_flow.rrd" ), "ROW_7" => array( "rows" => "Total_Row_Power.rrd", "rowscool" => "Calc_row_lcp_cooling_power.rrd", "clcpwaterflow" => "Calc_row_lcp_water_flow.rrd", "rowsfan" => "Calc_row_lcp_fan_power.rrd", "clcpairflow" => "Calc_row_lcp_water_flow.rrd" ), "ROW_8" => array( "rows" => "Total_Row_Power.rrd", "rowscool" => "Calc_row_lcp_cooling_power.rrd", "clcpwaterflow" => "Calc_row_lcp_water_flow.rrd", "rowsfan" => "Calc_row_lcp_fan_power.rrd", "clcpairflow" => "Calc_row_lcp_water_flow.rrd" ) ); $mgroup_metrics = array( "ROWS" => array( "rows", "rowscool", "clcpwaterflow", "pumptemp", "pumpdp" ), "ROW_6" => array( "rows", "rowscool", "clcpwaterflow", "clcpairflow", "rowsfan" ), "ROW_8" => array( "rows", "rowscool", "clcpwaterflow", "clcpairflow", "rowsfan" ), "ROW_7" => array( "rows", "rowscool", "clcpwaterflow", "clcpairflow", "rowsfan" ), "ROW_2" => array( "rows", "rowscool", "clcpwaterflow", "clcpairflow", "rowsfan" ), "ROW_4" => array( "rows", "rowscool", "clcpwaterflow", "clcpairflow", "rowsfan" ), "ROW_3" => array( "rows", "rowscool", "clcpwaterflow", "clcpairflow", "rowsfan" ), "ROW_5" => array( "rows", "rowscool", "clcpwaterflow", "clcpairflow", "rowsfan" ) ); function add_ipmi_metrics ($metrics, $rrddir){ $alledateien = scandir($rrddir); foreach ($alledateien as $datei) { // Ausgabeschleife if (substr_compare($datei,"ipmi",0,4) == 0){ $dateiinfo = pathinfo($rrddir."/".$datei); if($dateiinfo['extension'] == 'rrd'){ $metrics[$dateiinfo['filename']]['NAME'] = $dateiinfo['filename']; $metrics[$dateiinfo['filename']]['TYPE'] = 'float'; $metrics[$dateiinfo['filename']]['VAL'] = 0; $metrics[$dateiinfo['filename']]['SLOPE'] = 'both'; $metrics[$dateiinfo['filename']]['UNITS'] = 'a.u.'; $metrics[$dateiinfo['filename']]['GROUP'] = array("ipmi"); #error_log("add ipmii".$dateiinfo['filename']); } } }; return $metrics; } function add_ipmi_metrics_cview($hostname,$metrics,$rrddir){ $alledateien = scandir($rrddir); foreach ($alledateien as $datei) { // Ausgabeschleife if (substr_compare($datei,"ipmi",0,4) == 0){ $dateiinfo = pathinfo($rrddir."/".$datei); if($dateiinfo['extension'] == 'rrd'){ $metrics[$hostname][$dateiinfo['filename']]['NAME'] = $dateiinfo['filename']; $metrics[$hostname][$dateiinfo['filename']]['TYPE'] = 'float'; $metrics[$hostname][$dateiinfo['filename']]['VAL'] = 0; $metrics[$hostname][$dateiinfo['filename']]['SLOPE'] = 'both'; $metrics[$hostname][$dateiinfo['filename']]['UNITS'] = 'a.u.'; $metrics[$hostname][$dateiinfo['filename']]['GROUP'] = array("ipmi"); #error_log("add ipmii".$dateiinfo['filename']); } } }; return $metrics; } ?>
in the <GANGLIA HOME>/graph.d/ directory (files archive graph_d.tar.bz2)
4241 Aug 13 18:27 clcpairflow_report.php 4247 Aug 13 18:27 clcpwaterflow_report.php 3011 Feb 17 2010 cpu_report.php 4388 Aug 6 17:06 cputemp_report.php 1481 Feb 17 2010 load_report.php 2284 Feb 17 2010 mem_report.php 3659 Aug 14 11:55 metric.php 6481 Jul 18 16:50 my_report.php 1109 Jul 19 11:52 network_report.php 1107 Feb 17 2010 packet_report.php 4369 Jul 19 16:12 pump1_report.php 4561 Jul 24 14:38 pumpdp_report.php 4752 Jul 24 16:34 pumptemp_report.php 4079 Aug 13 18:26 rows_report.php 4154 Aug 13 18:25 rowscool_report.php 4089 Aug 13 18:26 rowsfan_report.php 6481 Feb 17 2010 sample_report.php
correction of the file metric.php in order to take new DS in to account:
... $DSname="sum"; //# the actual graph... if (substr_compare($metricname,"ipmi",0,4) == 0) $DSname="ipmi"; $series = "DEF:'sum'='$rrd_dir/$metricname.rrd:$DSname':AVERAGE "; $series .= "AREA:'sum'#$default_metric_color:'$subtitle_one'"; $series .= ":STACK: COMMENT:'$subtitle_two'"; ...
in the file conf.php (in “/etc/ganglia/”) was inserted:
... include_once "./maintenance_conf.php"; ... # Set timezone date_default_timezone_set ( 'Europe/Berlin' ); ...
in the template file <GANGLIA HOME>/templates/default/meta_view.tpl the block “public” was changed:
... <!-- START BLOCK : public --> <TD ALIGN="LEFT" VALIGN="TOP"> <table cellspacing=1 cellpadding=1 width="100%" border=0> <tr><td>CPUs Total:</td><td align=left><B>{cpu_num}</B></td></tr> <tr><td width="80%">Hosts up:</td><td align=left><B>{num_nodes}</B></td></tr> <tr><td>Hosts down:</td><td align=left><B>{num_dead_nodes}</B></td></tr> <tr><td> </td></tr> <tr><td class=footer colspan=2>{cluster_load}</td></tr> <tr><td class=footer colspan=2>{localtime}</td></tr> </table> </TD> <TD ROWSPAN=2 ALIGN="CENTER" VALIGN=top> <!-- START BLOCK : metric_graphs --> <A HREF="{url}"> <IMG SRC="./graph.php?{graph_url}&g={metricname}_report&z=medium&r={range}" ALT="{name} Load" BORDER="0"> </A> <!-- END BLOCK : metric_graphs --> </TD> <!-- END BLOCK : public --> ...
in the file <GANGLIA HOME>/meta_view.php the following was changed:
- public cluster code is altered
... foreach ( $sorted_sources as $source => $val ) { ... if (!isset($private[$source]) or !$private[$source]) { $tpl->assign("alt_view", "<FONT SIZE=\"-2\">$alt_url</FONT>"); # Each block has a different namespace, so we need to redefine variables. $tpl->newBlock("public"); if ($localtime) $tpl->assign("localtime", "<font size=-1>Localtime:</font><br> " . date("Y-m-d H:i", $localtime) ); $tpl->assign("num_nodes", $grid[$source]["HOSTS_UP"] ); $tpl->assign("num_dead_nodes", $grid[$source]["HOSTS_DOWN"] ); if ($name == $maint_name){ foreach ($maintenance_metrics as $g) { $tpl->newBlock("metric_graphs"); $tpl->assign("range", $range); $tpl->assign("name", $name ); $tpl->assign("url", "./graph.php?c=$cluster_url&r=$range&g=${g}_report&z=large"); $tpl->assign("graph_url", $graph_url); $tpl->assign("metricname", $g); } } else { if ($cluster_load) $tpl->assign("cluster_load", "<font size=-1>Avg Load (15, 5, 1m):</font>" ."<br> $cluster_load"); $tpl->assign("cpu_num", $m["cpu_num"]['SUM']); foreach ($computer_metrics as $g) { $tpl->newBlock("metric_graphs"); $tpl->assign("range", $range); $tpl->assign("name", $name ); $tpl->assign("url", $url); $tpl->assign("graph_url", $graph_url); $tpl->assign("metricname", $g); } } if(isset($base64img)) { $tpl->assign("base64img", $base64img); } } else { $tpl->newBlock("private"); $tpl->assign("num_nodes", $grid[$source]["HOSTS_UP"] + $grid[$source]["HOSTS_DOWN"] ); $tpl->assign("cpu_num", $m["cpu_num"]['SUM']); if ($localtime) $tpl->assign("localtime", "<font size=-1>Localtime:</font><br> " . date("Y-m-d H:i",$localtime)); } } ...
in order to see the “last reported” metric by default in the “maintenance” overview the line 118 was changed:
if ($name == $maint_name) $tpl->assign("url", "./?c=$name&m=last_reported&r=$range"); else $tpl->assign("url", $url);