From: <kn...@us...> - 2006-12-28 21:18:22
|
Revision: 699 http://svn.sourceforge.net/ganglia/?rev=699&view=rev Author: knobi1 Date: 2006-12-28 13:18:22 -0800 (Thu, 28 Dec 2006) Log Message: ----------- MKN: Fix scaling related ugliness of RRD fonts. MKN: Check whether rrd-files exist in function "find_limits" Modified Paths: -------------- trunk/monitor-core/web/cluster_view.php trunk/monitor-core/web/functions.php trunk/monitor-core/web/graph.php trunk/monitor-core/web/templates/default/cluster_view.tpl trunk/monitor-core/web/templates/default/host_view.tpl trunk/monitor-core/web/templates/default/meta_view.tpl Modified: trunk/monitor-core/web/cluster_view.php =================================================================== --- trunk/monitor-core/web/cluster_view.php 2006-12-28 21:14:48 UTC (rev 698) +++ trunk/monitor-core/web/cluster_view.php 2006-12-28 21:18:22 UTC (rev 699) @@ -208,7 +208,7 @@ { $cell="<td><a href=$host_link>". "<img src=\"./graph.php?$graphargs\" ". - "alt=\"$host\" height=112 width=225 border=0></a></td>"; + "alt=\"$host\" border=0></a></td>"; } $tpl->assign("metric_image", $cell); Modified: trunk/monitor-core/web/functions.php =================================================================== --- trunk/monitor-core/web/functions.php 2006-12-28 21:14:48 UTC (rev 698) +++ trunk/monitor-core/web/functions.php 2006-12-28 21:18:22 UTC (rev 699) @@ -217,23 +217,25 @@ $out = array(); $rrd_dir = "$rrds/$clustername/$host"; - $command = RRDTOOL . " graph - --start $start --end $end ". - "DEF:limits='$rrd_dir/$metricname.rrd':'sum':AVERAGE ". - "PRINT:limits:MAX:%.2lf ". - "PRINT:limits:MIN:%.2lf"; - exec($command, $out); - if(isset($out[1])) { - $thismax = $out[1]; - } else { - $thismax = NULL; + if (file_exists("$rrd_dir/$metricname.rrd")) { + $command = RRDTOOL . " graph - --start $start --end $end ". + "DEF:limits='$rrd_dir/$metricname.rrd':'sum':AVERAGE ". + "PRINT:limits:MAX:%.2lf ". + "PRINT:limits:MIN:%.2lf"; + exec($command, $out); + if(isset($out[1])) { + $thismax = $out[1]; + } else { + $thismax = NULL; + } + if (!is_numeric($thismax)) continue; + if ($max < $thismax) $max = $thismax; + + $thismin=$out[2]; + if (!is_numeric($thismin)) continue; + if ($min > $thismin) $min = $thismin; + #echo "$host: $thismin - $thismax (now $value)<br>\n"; } - if (!is_numeric($thismax)) continue; - if ($max < $thismax) $max = $thismax; - - $thismin=$out[2]; - if (!is_numeric($thismin)) continue; - if ($min > $thismin) $min = $thismin; - #echo "$host: $thismin - $thismax (now $value)<br>\n"; } return array($min, $max); Modified: trunk/monitor-core/web/graph.php =================================================================== --- trunk/monitor-core/web/graph.php 2006-12-28 21:14:48 UTC (rev 698) +++ trunk/monitor-core/web/graph.php 2006-12-28 21:18:22 UTC (rev 699) @@ -42,16 +42,25 @@ { $height = 40; $width = 130; + $fudge_0 = 0; + $fudge_1 = 0; + $fudge_2 = 0; } else if ($size == "medium") { $height = 75; $width = 300; + $fudge_0 = 0; + $fudge_1 = 14; + $fudge_2 = 28; } else { $height = 100; $width = 400; + $fudge_0 = 0; + $fudge_1 = 0; + $fudge_2 = 0; } @@ -82,10 +91,12 @@ exit; } +$fudge = 0; if ($graph) /* Canned graph request */ { if($graph == "cpu_report") { + $fudge = $fudge_1; $style = "CPU"; $upper_limit = "--upper-limit 100 --rigid"; @@ -134,6 +145,7 @@ } else if ($graph == "mem_report") { + $fudge = $fudge_0; $style = "Memory"; $lower_limit = "--lower-limit 0 --rigid"; @@ -165,6 +177,7 @@ } else if ($graph == "load_report") { + $fudge = $fudge_2; $style = "Load"; $lower_limit = "--lower-limit 0 --rigid"; @@ -187,6 +200,7 @@ } else if ($graph == "network_report") { + $fudge = $fudge_2; $style = "Network"; $lower_limit = "--lower-limit 0 --rigid"; @@ -200,6 +214,7 @@ } else if ($graph == "packet_report") { + $fudge = $fudge_2; $style = "Packets"; $lower_limit = "--lower-limit 0 --rigid"; @@ -305,8 +320,9 @@ # # Generate the rrdtool graph command. # +$fudge += $height; $command = RRDTOOL . " graph - --start $start --end $end ". - "--width $width --height $height $upper_limit $lower_limit ". + "--width $width --height $fudge $upper_limit $lower_limit ". "--title '$title' $vertical_label $extras $background ". $series; Modified: trunk/monitor-core/web/templates/default/cluster_view.tpl =================================================================== --- trunk/monitor-core/web/templates/default/cluster_view.tpl 2006-12-28 21:14:48 UTC (rev 698) +++ trunk/monitor-core/web/templates/default/cluster_view.tpl 2006-12-28 21:18:22 UTC (rev 699) @@ -20,16 +20,16 @@ </TD> <TD ROWSPAN=2 ALIGN="CENTER" VALIGN=top> -<IMG HEIGHT="147" WIDTH="395" ALT="{cluster} LOAD" +<IMG ALT="{cluster} LOAD" SRC="./graph.php?g=load_report&z=medium&{graph_args}"> -<IMG HEIGHT="147" WIDTH="395" ALT="{cluster} CPU" +<IMG ALT="{cluster} CPU" SRC="./graph.php?g=cpu_report&z=medium&{graph_args}"> -<IMG HEIGHT="160" WIDTH="395" ALT="{cluster} MEM" +<IMG ALT="{cluster} MEM" SRC="./graph.php?g=mem_report&z=medium&{graph_args}"> -<IMG HEIGHT="147" WIDTH="395" ALT="{cluster} NETWORK" +<IMG ALT="{cluster} NETWORK" SRC="./graph.php?g=network_report&z=medium&{graph_args}"> <!-- START BLOCK : optional_graphs --> -<IMG HEIGHT="147" WIDTH="395" ALT="{cluster} {name}" +<IMG ALT="{cluster} {name}" SRC="./graph.php?g={name}_report&z=medium&{graph_args}"> <!-- END BLOCK : optional_graphs --> </TD> Modified: trunk/monitor-core/web/templates/default/host_view.tpl =================================================================== --- trunk/monitor-core/web/templates/default/host_view.tpl 2006-12-28 21:14:48 UTC (rev 698) +++ trunk/monitor-core/web/templates/default/host_view.tpl 2006-12-28 21:18:22 UTC (rev 699) @@ -50,15 +50,15 @@ </TD> <TD ALIGN="CENTER" VALIGN="TOP" WIDTH="395"> -<IMG HEIGHT="147" WIDTH="395" ALT="{cluster_url} LOAD" +<IMG ALT="{cluster_url} LOAD" SRC="./graph.php?g=load_report&z=medium&c={cluster_url}&{graphargs}"> -<IMG HEIGHT="160" WIDTH="395" ALT="{cluster_url} MEM" +<IMG ALT="{cluster_url} MEM" SRC="./graph.php?g=mem_report&z=medium&c={cluster_url}&{graphargs}"> -<IMG HEIGHT="147" WIDTH="395" ALT="{cluster_url} CPU" +<IMG ALT="{cluster_url} CPU" SRC="./graph.php?g=cpu_report&z=medium&c={cluster_url}&{graphargs}"> -<IMG HEIGHT="147" WIDTH="395" ALT="{cluster_url} NETWORK" +<IMG ALT="{cluster_url} NETWORK" SRC="./graph.php?g=network_report&z=medium&c={cluster_url}&{graphargs}"> -<IMG HEIGHT="147" WIDTH="395" ALT="{cluster_url} PACKETS" +<IMG ALT="{cluster_url} PACKETS" SRC="./graph.php?g=packet_report&z=medium&c={cluster_url}&{graphargs}"> </TD> @@ -82,7 +82,7 @@ <TD> <!-- START BLOCK : vol_metric_info --> -<IMG HEIGHT="147" WIDTH="395" ALT="{alt}" SRC="./graph.php?{graphargs}">{br} +<IMG ALT="{alt}" SRC="./graph.php?{graphargs}">{br} <!-- END BLOCK : vol_metric_info --> </TD> Modified: trunk/monitor-core/web/templates/default/meta_view.tpl =================================================================== --- trunk/monitor-core/web/templates/default/meta_view.tpl 2006-12-28 21:14:48 UTC (rev 698) +++ trunk/monitor-core/web/templates/default/meta_view.tpl 2006-12-28 21:18:22 UTC (rev 699) @@ -23,14 +23,14 @@ <TD VALIGN=top align=right> <A HREF="{url}"> <IMG SRC="./graph.php?{graph_url}&g=load_report&z=medium&r={range}" - HEIGHT="147" WIDTH="395" ALT="{name} Load" BORDER="0"> + ALT="{name} Load" BORDER="0"> </A> </TD> <TD VALIGN=top> <A HREF="{url}" VALIGN=top> <IMG SRC="./graph.php?{graph_url}&g=mem_report&z=medium&r={range}" - HEIGHT="160" WIDTH="395" ALT="{name} MEM" BORDER="0"> + ALT="{name} MEM" BORDER="0"> </A> </TD> <!-- END BLOCK : public --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kn...@us...> - 2007-01-02 10:04:07
|
Revision: 709 http://svn.sourceforge.net/ganglia/?rev=709&view=rev Author: knobi1 Date: 2007-01-02 02:04:08 -0800 (Tue, 02 Jan 2007) Log Message: ----------- MKN: Take fix for bz#53. MKN: Fix some NOTICE level php warnings. Modified Paths: -------------- trunk/monitor-core/web/cluster_view.php trunk/monitor-core/web/functions.php trunk/monitor-core/web/header.php Modified: trunk/monitor-core/web/cluster_view.php =================================================================== --- trunk/monitor-core/web/cluster_view.php 2006-12-31 22:26:49 UTC (rev 708) +++ trunk/monitor-core/web/cluster_view.php 2007-01-02 10:04:08 UTC (rev 709) @@ -10,7 +10,17 @@ $load_one_sum = !$showhosts ? $metrics["load_one"]['SUM'] : cluster_sum("load_one", $metrics); $load_five_sum = !$showhosts ? $metrics["load_five"]['SUM'] : cluster_sum("load_five", $metrics); $load_fifteen_sum = !$showhosts ? $metrics["load_fifteen"]['SUM'] : cluster_sum("load_fifteen", $metrics); -$units = !$showhosts ? $metrics[$metricname]['UNITS'] : $metrics[key($metrics)][$metricname]['UNITS']; +# +# Correct handling of *_report metrics +# +if (!$showhosts) { + if(array_key_exists($metricname, $metrics)) + $units = $metrics[$metricname]['UNITS']; + } +else { + if(array_key_exists($metricname, $metrics[key($metrics)])) + $units = $metrics[key($metrics)][$metricname]['UNITS']; + } $tpl->assign("num_nodes", intval($cluster['HOSTS_UP'])); if(isset($cluster['HOSTS_DOWN'])) { @@ -45,12 +55,24 @@ } -$units=$units ? "($units)" : ""; +# +# Correctly handle *_report cases and blank (" ") units +# +if (isset($units)) { + if ($units == " ") + $units = ""; + else + $units=$units ? "($units)" : ""; +} +else { + $units = ""; +} $tpl->assign("metric","$metricname $units"); $tpl->assign("sort", $sort); $tpl->assign("range", $range); # Host columns menu defined in header.php -$tpl->assign("cols_menu", $cols_menu); +if ($showhosts) + $tpl->assign("cols_menu", $cols_menu); $tpl->assign("checked$showhosts", "checked"); $sorted_hosts = array(); @@ -106,7 +128,7 @@ # Show pie chart of hosts up/down $pie_args = "title=" . rawurlencode("Host Status"); $pie_args .= "&size=250x150"; - $up_color = $load_colors["50-75"]; + $up_color = $load_colors["25-50"]; $down_color = $load_colors["down"]; $pie_args .= "&Up=$cluster[HOSTS_UP],$up_color"; $pie_args .= "&Down=$cluster[HOSTS_DOWN],$down_color"; @@ -125,7 +147,7 @@ arsort($sorted_hosts); break; case "by hostname": - ksort($sorted_hosts); + uksort($sorted_hosts, "strnatcmp"); break; default: case "ascending": Modified: trunk/monitor-core/web/functions.php =================================================================== --- trunk/monitor-core/web/functions.php 2006-12-31 22:26:49 UTC (rev 708) +++ trunk/monitor-core/web/functions.php 2007-01-02 10:04:08 UTC (rev 709) @@ -206,9 +206,14 @@ $firsthost = key($metrics); - if ($metrics[$firsthost][$metricname]['TYPE'] == "string" - or $metrics[$firsthost][$metricname]['SLOPE'] == "zero") - return array(0,0); + if (array_key_exists($metricname,$metrics[$firsthost])) { + if ($metrics[$firsthost][$metricname]['TYPE'] == "string" + or $metrics[$firsthost][$metricname]['SLOPE'] == "zero") + return array(0,0); + } + else { + return array(0,0); + } $max=0; $min=0; Modified: trunk/monitor-core/web/header.php =================================================================== --- trunk/monitor-core/web/header.php 2006-12-31 22:26:49 UTC (rev 708) +++ trunk/monitor-core/web/header.php 2007-01-02 10:04:08 UTC (rev 709) @@ -184,7 +184,7 @@ $node_menu .= "<OPTION VALUE=\"\">--Choose a Node\n"; if(is_array($hosts_up)) { - ksort($hosts_up); + uksort($hosts_up, "strnatcmp"); foreach($hosts_up as $k=> $v) { $url = rawurlencode($k); @@ -193,7 +193,7 @@ } if(is_array($hosts_down)) { - ksort($hosts_down); + uksort($hosts_down, "strnatcmp"); foreach($hosts_down as $k=> $v) { $url = rawurlencode($k); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ber...@us...> - 2007-04-17 05:09:17
|
Revision: 763 http://svn.sourceforge.net/ganglia/?rev=763&view=rev Author: bernardli Date: 2007-04-16 22:09:18 -0700 (Mon, 16 Apr 2007) Log Message: ----------- Added "sort by hosts down" and "sort by hosts up" in meta context - sort by hosts down (Bernard Li) - limit the two new sort orders to meta context (Eli Stair) - sort by hosts up (Timothy D Witham) - fix mismatch of source load images at bottom of main page (Timothy D Witham) - "sort by hostname" -> "sort by name" (since sources != hostname) (Timothy D Witham) Modified Paths: -------------- trunk/monitor-core/web/cluster_view.php trunk/monitor-core/web/get_context.php trunk/monitor-core/web/header.php trunk/monitor-core/web/meta_view.php Modified: trunk/monitor-core/web/cluster_view.php =================================================================== --- trunk/monitor-core/web/cluster_view.php 2007-04-12 20:57:31 UTC (rev 762) +++ trunk/monitor-core/web/cluster_view.php 2007-04-17 05:09:18 UTC (rev 763) @@ -146,7 +146,7 @@ case "descending": arsort($sorted_hosts); break; - case "by hostname": + case "by name": uksort($sorted_hosts, "strnatcmp"); break; default: Modified: trunk/monitor-core/web/get_context.php =================================================================== --- trunk/monitor-core/web/get_context.php 2007-04-12 20:57:31 UTC (rev 762) +++ trunk/monitor-core/web/get_context.php 2007-04-17 05:09:18 UTC (rev 763) @@ -116,6 +116,15 @@ if (!$sort) $sort = "descending"; +# Since cluster context do not have the option to sort "by hosts down" or +# "by hosts up", therefore change sort order to "descending" if previous +# sort order is either "by hosts down" or "by hosts up" +if ($context == "cluster") { + if ($sort == "by hosts up" || $sort == "by hosts down") { + $sort = "descending"; + } +} + # A hack for pre-2.5.0 ganglia data sources. $always_constant = array( "swap_total" => 1, Modified: trunk/monitor-core/web/header.php =================================================================== --- trunk/monitor-core/web/header.php 2007-04-12 20:57:31 UTC (rev 762) +++ trunk/monitor-core/web/header.php 2007-04-17 05:09:18 UTC (rev 763) @@ -293,8 +293,16 @@ { $context_sorts[]="ascending"; $context_sorts[]="descending"; - $context_sorts[]="by hostname"; + $context_sorts[]="by name"; + # + # Show sort order options for meta context only: + # + if ($context == "meta" ) { + $context_sorts[]="by hosts up"; + $context_sorts[]="by hosts down"; + } + $sort_menu = "<B>Sorted</B> " ."<SELECT NAME=\"s\" OnChange=\"ganglia_form.submit();\">\n"; foreach ( $context_sorts as $v ) Modified: trunk/monitor-core/web/meta_view.php =================================================================== --- trunk/monitor-core/web/meta_view.php 2007-04-12 20:57:31 UTC (rev 762) +++ trunk/monitor-core/web/meta_view.php 2007-04-17 05:09:18 UTC (rev 763) @@ -32,19 +32,32 @@ $load_one = $metrics[$c]["load_one"]['SUM']; $value = (double) $load_one / $cpucount; $sorted_sources[$c] = $value; + $values[$c] = $value; isset($total_load) or $total_load = 0; $total_load += $value; } # Insure self is always first -$sorted_sources[$self] = $total_load + 1; +$sorted_sources[$self] = 999999; if ($sort == "descending") { arsort($sorted_sources); } -else if ($sort == "by hostname") { - ksort($sorted_sources); -} -else { +else if ($sort == "by name") { + ksort($sorted_sources); +} else if ($sort == "by hosts up") { + foreach ($sorted_sources as $source => $val) { + $sorted_sources[$source] = intval($grid[$source]['HOSTS_UP']); + } + $sorted_sources[$self] = 999999; + arsort($sorted_sources); +} else if ($sort == "by hosts down") { + foreach ($sorted_sources as $source => $val) { + $sorted_sources[$source] = intval($grid[$source]['HOSTS_DOWN']); + } + $sorted_sources[$self] = 999999; + arsort($sorted_sources); +} else { + $sorted_sources[$self] = -1; asort($sorted_sources); } @@ -151,9 +164,9 @@ $names[]=$c; if (isset($grid[$c]['GRID']) and $grid[$c]['GRID']) - $image = load_image("grid", $value); + $image = load_image("grid", $values[$c]); else - $image = load_image("cluster", $value); + $image = load_image("cluster", $values[$c]); $Images[]=$image; } # Add private cluster pictures to the end. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ber...@us...> - 2007-07-12 06:25:01
|
Revision: 808 http://svn.sourceforge.net/ganglia/?rev=808&view=rev Author: bernardli Date: 2007-07-11 23:24:59 -0700 (Wed, 11 Jul 2007) Log Message: ----------- Patch by Matthew Chambers: - Add rrdtool version to frontend footer - Gmetad frontend/backend -> Ganglia frontend/backend For more info, see: http://www.mail-archive.com/gan...@li.../msg00048.html Modified Paths: -------------- trunk/monitor-core/web/footer.php trunk/monitor-core/web/ganglia.php trunk/monitor-core/web/templates/default/footer.tpl Modified: trunk/monitor-core/web/footer.php =================================================================== --- trunk/monitor-core/web/footer.php 2007-07-12 00:50:39 UTC (rev 807) +++ trunk/monitor-core/web/footer.php 2007-07-12 06:24:59 UTC (rev 808) @@ -4,6 +4,10 @@ $tpl->prepare(); $tpl->assign("webfrontend-version",$version["webfrontend"]); +if ($version["rrdtool"]) { + $tpl->assign("rrdtool-version",$version["rrdtool"]); +} + if ($version["gmetad"]) { $tpl->assign("webbackend-component", "gmetad"); $tpl->assign("webbackend-version",$version["gmetad"]); Modified: trunk/monitor-core/web/ganglia.php =================================================================== --- trunk/monitor-core/web/ganglia.php 2007-07-12 00:50:39 UTC (rev 807) +++ trunk/monitor-core/web/ganglia.php 2007-07-12 06:24:59 UTC (rev 808) @@ -36,6 +36,13 @@ #$version["webfrontend"] = "$majorversion.$minorversion.$microversion"; $version["webfrontend"] = "$ganglia_version"; +# Get rrdtool version +$rrdtool_version = array(); +exec(RRDTOOL, $rrdtool_version); +$rrdtool_version = explode(" ", $rrdtool_version[0]); +$rrdtool_version = $rrdtool_version[1]; +$version["rrdtool"] = "$rrdtool_version"; + # The name of our local grid. $self = " "; Modified: trunk/monitor-core/web/templates/default/footer.tpl =================================================================== --- trunk/monitor-core/web/templates/default/footer.tpl 2007-07-12 00:50:39 UTC (rev 807) +++ trunk/monitor-core/web/templates/default/footer.tpl 2007-07-12 06:24:59 UTC (rev 808) @@ -1,16 +1,16 @@ <HR> <CENTER> <FONT SIZE="-1" class=footer> -Gmetad Web Frontend version {webfrontend-version} +Ganglia Web Frontend version {webfrontend-version} <A HREF="http://ganglia.sourceforge.net/downloads.php?component=ganglia-webfrontend& version={webfrontend-version}">Check for Updates.</A><BR> -Gmetad Web Backend <i>({webbackend-component})</i> version {webbackend-version} +Ganglia Web Backend <i>({webbackend-component})</i> version {webbackend-version} <A HREF="http://ganglia.sourceforge.net/downloads.php?component={webbackend-component}& version={webbackend-version}">Check for Updates.</A><BR> Downloading and parsing ganglia's XML tree took {parsetime}.<BR> -Images created with <A HREF="http://www.rrdtool.org/">RRDTool</A>.<BR> +Images created with <A HREF="http://www.rrdtool.org/">RRDTool</A> version {rrdtool-version}.<BR> </FONT> </CENTER> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ber...@us...> - 2007-10-10 20:39:21
|
Revision: 854 http://ganglia.svn.sourceforge.net/ganglia/?rev=854&view=rev Author: bernardli Date: 2007-10-10 13:39:26 -0700 (Wed, 10 Oct 2007) Log Message: ----------- Small patch to allow for different sized graphs in the cluster_view by Jesse Becker <ha...@gm...> Modified Paths: -------------- trunk/monitor-core/web/cluster_view.php trunk/monitor-core/web/get_context.php trunk/monitor-core/web/graph.php trunk/monitor-core/web/header.php trunk/monitor-core/web/templates/default/cluster_view.tpl Modified: trunk/monitor-core/web/cluster_view.php =================================================================== --- trunk/monitor-core/web/cluster_view.php 2007-10-10 18:17:31 UTC (rev 853) +++ trunk/monitor-core/web/cluster_view.php 2007-10-10 20:39:26 UTC (rev 854) @@ -71,8 +71,10 @@ $tpl->assign("sort", $sort); $tpl->assign("range", $range); # Host columns menu defined in header.php -if ($showhosts) +if ($showhosts) { $tpl->assign("cols_menu", $cols_menu); + $tpl->assign("size_menu", $size_menu); +} $tpl->assign("checked$showhosts", "checked"); $sorted_hosts = array(); @@ -211,12 +213,13 @@ else { $load_color = load_color($host_load[$host]); + $size = isset($clustergraphsize) ? $clustergraphsize : 'small'; $graphargs = (isset($reports[$metricname]) and $reports[$metricname]) ? "g=$metricname&" : "m=$metricname&"; - $graphargs .= "z=small&c=$cluster_url&h=$host_url" + $graphargs .= "z=$size&c=$cluster_url&h=$host_url" ."&l=$load_color&v=$val[VAL]&x=$max&n=$min" - ."&r=$range&st=$cluster[LOCALTIME]"; + ."&r=$range&su=1&st=$cluster[LOCALTIME]"; } } Modified: trunk/monitor-core/web/get_context.php =================================================================== --- trunk/monitor-core/web/get_context.php 2007-10-10 18:17:31 UTC (rev 853) +++ trunk/monitor-core/web/get_context.php 2007-10-10 20:39:26 UTC (rev 854) @@ -37,6 +37,9 @@ # The direction we are travelling in the grid tree $gridwalk = isset($_GET["gw"]) ? escapeshellcmd($_GET["gw"]) : NULL; +# Size of the host graphs in the cluster view +$clustergraphsize = isset($_GET["z"]) ? + escapeshellcmd($_GET["z"]) : NULL; # A stack of grid parents. Prefer a GET variable, default to cookie. if (isset($_GET["gs"]) and $_GET["gs"]) $gridstack = explode(">", rawurldecode($_GET["gs"])); Modified: trunk/monitor-core/web/graph.php =================================================================== --- trunk/monitor-core/web/graph.php 2007-10-10 18:17:31 UTC (rev 853) +++ trunk/monitor-core/web/graph.php 2007-10-10 20:39:26 UTC (rev 854) @@ -27,6 +27,8 @@ escapeshellcmd( rawurldecode( $_GET["vl"] )) : NULL; $sourcetime = isset($_GET["st"]) ? escapeshellcmd($_GET["st"]) : NULL; +$summary = isset($_GET["su"]) ? + escapeshellcmd($_GET["su"]) : NULL; # RFM - Define these variables to avoid "Undefined variable" errors being # reported in ssl_error_log. @@ -54,6 +56,14 @@ $fudge_1 = 14; $fudge_2 = 28; } +else if ($size == "large") + { + $height = 600; + $width = 800; + $fudge_0 = 0; + $fudge_1 = 0; + $fudge_2 = 0; + } else { $height = 100; @@ -240,7 +250,7 @@ $subtitle = $metricname; if ($context == "host") { - if ($size == "small") + if ($summary) $prefix = $metricname; else $prefix = $hostname; @@ -292,16 +302,16 @@ } else { + # Value for this graph define a background color. + if (!$load_color) $load_color = "ffffff"; + $background = "--color BACK#'$load_color'"; + if ($size == "small") - { - # Value for this graph define a background color. - if (!$load_color) $load_color = "ffffff"; - $background = "--color BACK#'$load_color'"; - $title = $hostname; - } else if ($style) $title = "$hostname $style last $range"; + else if ($summary) + $title = "$hostname"; else $title = $metricname; } Modified: trunk/monitor-core/web/header.php =================================================================== --- trunk/monitor-core/web/header.php 2007-10-10 18:17:31 UTC (rev 853) +++ trunk/monitor-core/web/header.php 2007-10-10 20:39:26 UTC (rev 854) @@ -334,7 +334,19 @@ $cols_menu .= ">$cols\n"; } $cols_menu .= "</SELECT>\n"; - + + $size_menu = '<SELECT NAME="z" OnChange="ganglia_form.submit();">'; + + $size_arr = array("small","medium","large"); + foreach ($size_arr as $size) { + $size_menu .= "<OPTION VALUE=\"$size\""; + if (isset($clustergraphsize) && ($size === $clustergraphsize)) { + $size_menu .= " SELECTED"; + } + $size_menu .= ">$size</OPTION>\n"; + } + $size_menu .= "</SELECT>\n"; + # Assign template variable in cluster view. } Modified: trunk/monitor-core/web/templates/default/cluster_view.tpl =================================================================== --- trunk/monitor-core/web/templates/default/cluster_view.tpl 2007-10-10 18:17:31 UTC (rev 853) +++ trunk/monitor-core/web/templates/default/cluster_view.tpl 2007-10-10 20:39:26 UTC (rev 854) @@ -58,6 +58,7 @@ | <FONT SIZE="-1"> Columns {cols_menu} + Size {size_menu} </FONT> </TD> </TR> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ber...@us...> - 2008-01-04 22:13:40
|
Revision: 919 http://ganglia.svn.sourceforge.net/ganglia/?rev=919&view=rev Author: bernardli Date: 2008-01-04 14:13:44 -0800 (Fri, 04 Jan 2008) Log Message: ----------- Fix for web front-end cross-scripting vulnerability - Discovered and reported by Romain Wartel at CERN - Patches by Alex Dean Modified Paths: -------------- trunk/monitor-core/web/conf.php trunk/monitor-core/web/functions.php trunk/monitor-core/web/get_context.php trunk/monitor-core/web/graph.php trunk/monitor-core/web/header.php trunk/monitor-core/web/host_gmetrics.php trunk/monitor-core/web/index.php Modified: trunk/monitor-core/web/conf.php =================================================================== --- trunk/monitor-core/web/conf.php 2007-12-31 22:05:04 UTC (rev 918) +++ trunk/monitor-core/web/conf.php 2008-01-04 22:13:44 UTC (rev 919) @@ -5,6 +5,11 @@ # include_once "./version.php"; +$get = print_r( $_GET, 1 ); +$fp = fopen( '/tmp/ganglia_vars.txt', 'a+' ); +fwrite( $fp, $_SERVER[ 'PHP_SELF'] . "\n" . $get . "\n\n" ); +fclose( $fp ); + # # The name of the directory in "./templates" which contains the # templates that you want to use. Templates are like a skin for the @@ -23,7 +28,7 @@ # Leave this alone if rrdtool is installed in $gmetad_root, # otherwise, change it if it is installed elsewhere (like /usr/bin) -define("RRDTOOL", "/usr/bin/rrdtool"); +define("RRDTOOL", "/sw/bin/rrdtool"); # # If you want to grab data from a different ganglia source specify it here. @@ -126,4 +131,57 @@ # #$optional_graphs = array('packet'); +# +# Time ranges +# Each value is the # of seconds in that range. +# +$time_ranges = array( + 'hour'=>3600, + '2hour'=>7200, + 'day'=>86400, + 'week'=>604800, + 'month'=>2419200, + 'year'=>31449600 +); + +# this key must exist in $time_ranges +$default_time_range = 'hour'; + +# +# Graph sizes +# +$graph_sizes = array( + 'small'=>array( + 'height'=>40, + 'width'=>130, + 'fudge_0'=>0, + 'fudge_1'=>0, + 'fudge_2'=>0 + ), + 'medium'=>array( + 'height'=>75, + 'width'=>300, + 'fudge_0'=>0, + 'fudge_1'=>14, + 'fudge_2'=>28 + ), + 'large'=>array( + 'height'=>600, + 'width'=>800, + 'fudge_0'=>0, + 'fudge_1'=>0, + 'fudge_2'=>0 + ), + # this was the default value when no other size was provided. + # I wasn't sure what else to call it? + 'default'=>array( + 'height'=>100, + 'width'=>400, + 'fudge_0'=>0, + 'fudge_1'=>0, + 'fudge_2'=>0 + ) +); +$default_graph_size = 'default'; +$graph_sizes_keys = array_keys( $graph_sizes ); ?> Modified: trunk/monitor-core/web/functions.php =================================================================== --- trunk/monitor-core/web/functions.php 2007-12-31 22:05:04 UTC (rev 918) +++ trunk/monitor-core/web/functions.php 2008-01-04 22:13:44 UTC (rev 919) @@ -411,4 +411,37 @@ return $racks; } +#------------------------------------------------------------------------------- +# Return a version of the string which is safe for display on a web page. +# Potentially dangerous characters are converted to HTML entities. +# Resulting string is not URL-encoded. +function clean_string( $string ) +{ + return htmlentities( $string ); +} + +#------------------------------------------------------------------------------- +# If arg is entirely numeric, return it. Otherwise, return null. +function clean_number( $digit ) +{ + $return_value = null; + if( ctype_digit( $digit ) ) { + $return_value = $digit; + } + return $return_value; +} + +#------------------------------------------------------------------------------- +# Return true if string is a 3 or 6 character hex color. Return false otherwise. +function is_valid_hex_color( $string ) +{ + $return_value = false; + if( strlen( $string ) == 6 || strlen( $string ) == 3 ) { + if( preg_match( '/^[0-9a-fA-F]+$/', $string ) ) { + $return_value = true; + } + } + return $return_value; + +} ?> Modified: trunk/monitor-core/web/get_context.php =================================================================== --- trunk/monitor-core/web/get_context.php 2007-12-31 22:05:04 UTC (rev 918) +++ trunk/monitor-core/web/get_context.php 2008-01-04 22:13:44 UTC (rev 919) @@ -1,50 +1,50 @@ <?php /* $Id$ */ +include_once "./functions.php"; + $meta_designator = "Grid"; $cluster_designator = "Cluster Overview"; - + # Blocking malicious CGI input. $clustername = isset($_GET["c"]) ? - escapeshellcmd(rawurldecode($_GET["c"])) : NULL; + escapeshellcmd( clean_string( rawurldecode($_GET["c"]) ) ) : NULL; $gridname = isset($_GET["G"]) ? - escapeshellcmd(rawurldecode($_GET["G"])) : NULL; + escapeshellcmd( clean_string( rawurldecode($_GET["G"]) ) ) : NULL; $hostname = isset($_GET["h"]) ? - escapeshellcmd(rawurldecode($_GET["h"])) : NULL; -$range = in_array($_GET["r"],array("hour","day","week","month","year")) ? - escapeshellcmd(rawurldecode($_GET["r"])) : NULL; + escapeshellcmd( clean_string( rawurldecode($_GET["h"]) ) ) : NULL; +$range = in_array($_GET["r"], array_keys( $time_ranges ) ) ? + escapeshellcmd( rawurldecode($_GET["r"])) : NULL; $metricname = isset($_GET["m"]) ? - escapeshellcmd(rawurldecode($_GET["m"])) : NULL; + escapeshellcmd( clean_string( rawurldecode($_GET["m"]) ) ) : NULL; $sort = isset($_GET["s"]) ? - escapeshellcmd(rawurldecode($_GET["s"])) : NULL; + escapeshellcmd( clean_string( rawurldecode($_GET["s"]) ) ) : NULL; $controlroom = isset($_GET["cr"]) ? - escapeshellcmd(rawurldecode($_GET["cr"])) : NULL; + clean_number( rawurldecode($_GET["cr"]) ) : NULL; $hostcols = isset($_GET["hc"]) ? - escapeshellcmd($_GET["hc"]) : NULL; -$showhosts = isset($_GET["sh"]) ? - escapeshellcmd($_GET["sh"]) : NULL; + clean_number( $_GET["hc"] ) : NULL; +# Flag, whether or not to show a list of hosts +$showhosts = isset($_GET["sh"]) ? 1 : NULL; # The 'p' variable specifies the verbosity level in the physical view. $physical = isset($_GET["p"]) ? - escapeshellcmd($_GET["p"]) : NULL; -$tree = isset($_GET["t"]) ? - escapeshellcmd($_GET["t"] ) : NULL; + clean_number( $_GET["p"] ) : NULL; # A custom range value for job graphs, in -sec. $jobrange = isset($_GET["jr"]) ? - escapeshellcmd($_GET["jr"]) : NULL; + clean_number( $_GET["jr"] ) : NULL; # A red vertical line for various events. Value specifies the event time. $jobstart = isset($_GET["js"]) ? - escapeshellcmd($_GET["js"]) : NULL; + clean_number( $_GET["js"] ) : NULL; # The direction we are travelling in the grid tree $gridwalk = isset($_GET["gw"]) ? - escapeshellcmd($_GET["gw"]) : NULL; + escapeshellcmd( clean_string( $_GET["gw"] ) ) : NULL; # Size of the host graphs in the cluster view -$clustergraphsize = isset($_GET["z"]) ? +$clustergraphsize = isset($_GET["z"]) && in_array( $_GET[ 'z' ], $graph_sizes_keys ) ? escapeshellcmd($_GET["z"]) : NULL; # A stack of grid parents. Prefer a GET variable, default to cookie. if (isset($_GET["gs"]) and $_GET["gs"]) - $gridstack = explode(">", rawurldecode($_GET["gs"])); + $gridstack = explode(":", clean_string( rawurldecode($_GET["gs"] ) ) ); else - $gridstack = explode(">", $_COOKIE["gs"] ); + $gridstack = explode(":", clean_string( $_COOKIE["gs"] ) ); # Assume we are the first grid visited in the tree if there are no CGI variables, # or gridstack is not well formed. Gridstack always has at least one element. @@ -98,19 +98,13 @@ $end = "N"; -switch ($range) -{ - case "hour": $start = -3600; break; - case "day": $start = -86400; break; - case "week": $start = -604800; break; - case "month": $start = -2419200; break; - case "year": $start = -31449600; break; - case "job": - if ($jobrange) { - $start = $jobrange; - break; - } - default: $start = -3600; +# $time_ranges defined in conf.php +if( $range == 'job' && isSet( $jobrange ) ) { + $start = $jobrange; +} else if( isSet( $time_ranges[ $range ] ) ) { + $start = $time_ranges[ $range ] * -1; +} else { + $start = $time_ranges[ $default_time_range ] * -1; } if (!$metricname) Modified: trunk/monitor-core/web/graph.php =================================================================== --- trunk/monitor-core/web/graph.php 2007-12-31 22:05:04 UTC (rev 918) +++ trunk/monitor-core/web/graph.php 2008-01-04 22:13:44 UTC (rev 919) @@ -2,33 +2,36 @@ /* $Id$ */ include_once "./conf.php"; include_once "./get_context.php"; +include_once "./functions.php"; # RFM - Added all the isset() tests to eliminate "undefined index" # messages in ssl_error_log. # Graph specific variables -$size = isset($_GET["z"]) ? - escapeshellcmd( rawurldecode( $_GET["z"] )) : NULL; -$graph = isset($_GET["g"]) ? - escapeshellcmd( rawurldecode( $_GET["g"] )) : NULL; +# ATD - No need for escapeshellcmd or rawurldecode on $size or $graph. Not used directly in rrdtool calls. +$size = isset($_GET["z"]) && in_array( $_GET[ 'z' ], $graph_sizes_keys ) ? + $_GET["z"] : NULL; +# ATD - TODO, should encapsulate these custom graphs in some type of container, then this code could check list of defined containers for valid graph labels. +$graph = isset($_GET["g"]) && in_array( $_GET['g'], array( 'cpu_report', 'mem_report', 'load_report', 'network_report', 'packet_report' ) ) ? + $_GET["g"] : NULL; $grid = isset($_GET["G"]) ? - escapeshellcmd( rawurldecode( $_GET["G"] )) : NULL; + escapeshellcmd( clean_string( rawurldecode( $_GET["G"] ) ) ) : NULL; $self = isset($_GET["me"]) ? - escapeshellcmd(rawurldecode($_GET["me"])) : NULL; + escapeshellcmd( clean_string( rawurldecode($_GET["me"] ) ) ) : NULL; $max = isset($_GET["x"]) ? - escapeshellcmd( rawurldecode($_GET["x"] )) : NULL; + clean_number( rawurldecode($_GET["x"] ) ) : NULL; $min = isset($_GET["n"]) ? - escapeshellcmd( rawurldecode($_GET["n"] )) : NULL; + clean_number( rawurldecode($_GET["n"] ) ) : NULL; $value = isset($_GET["v"]) ? - escapeshellcmd( rawurldecode( $_GET["v"] )) : NULL; -$load_color = isset($_GET["l"]) ? - escapeshellcmd( rawurldecode( $_GET["l"] )) : NULL; + clean_number( rawurldecode( $_GET["v"] ) ) : NULL; +$load_color = isset($_GET["l"]) && is_valid_hex_color( rawurldecode( $_GET[ 'l' ] ) ) ? + escapeshellcmd( rawurldecode( $_GET["l"] ) ) : NULL; $vlabel = isset($_GET["vl"]) ? - escapeshellcmd( rawurldecode( $_GET["vl"] )) : NULL; + escapeshellcmd( clean_string( rawurldecode( $_GET["vl"] ) ) ) : NULL; $sourcetime = isset($_GET["st"]) ? - escapeshellcmd($_GET["st"]) : NULL; -$summary = isset($_GET["su"]) ? - escapeshellcmd($_GET["su"]) : NULL; + clean_number( $_GET["st"] ) : NULL; +$summary = isset($_GET["su"]) ? 1 : 0; +$debug = isset( $_GET[ 'debug' ] ) ? 1 : 0; # RFM - Define these variables to avoid "Undefined variable" errors being # reported in ssl_error_log. @@ -40,38 +43,20 @@ $vertical_label = ""; # Assumes we have a $start variable (set in get_context.php). -if ($size == "small") - { - $height = 40; - $width = 130; - $fudge_0 = 0; - $fudge_1 = 0; - $fudge_2 = 0; - } -else if ($size == "medium") - { - $height = 75; - $width = 300; - $fudge_0 = 0; - $fudge_1 = 14; - $fudge_2 = 28; - } -else if ($size == "large") - { - $height = 600; - $width = 800; - $fudge_0 = 0; - $fudge_1 = 0; - $fudge_2 = 0; - } -else - { - $height = 100; - $width = 400; - $fudge_0 = 0; - $fudge_1 = 0; - $fudge_2 = 0; - } +# $graph_sizes and $graph_sizes_keys defined in conf.php. Add custom sized there. +if( in_array( $size, $graph_sizes_keys ) ) { + $height = $graph_sizes[ $size ][ 'height' ]; + $width = $graph_sizes[ $size ][ 'width' ]; + $fudge_0 = $graph_sizes[ $size ][ 'fudge_0' ]; + $fudge_1 = $graph_sizes[ $size ][ 'fudge_1' ]; + $fudge_2 = $graph_sizes[ $size ][ 'fudge_2' ]; +} else { + $height = $graph_sizes[ 'default' ][ 'height' ]; + $width = $graph_sizes[ 'default' ][ 'width' ]; + $fudge_0 = $graph_sizes[ 'default' ][ 'fudge_0' ]; + $fudge_1 = $graph_sizes[ 'default' ][ 'fudge_1' ]; + $fudge_2 = $graph_sizes[ 'default' ][ 'fudge_2' ]; +} # This security fix was brought to my attention by Peter Vreugdenhil <pet...@sc...> @@ -336,8 +321,6 @@ "--title '$title' $vertical_label $extras $background ". $series; -$debug=0; - # Did we generate a command? Run it. if($command) { @@ -348,7 +331,7 @@ header ("Pragma: no-cache"); // HTTP/1.0 if ($debug) { header ("Content-type: text/html"); - print "$command\n\n\n\n\n"; + print htmlentities( $command ) . "\n\n\n\n\n"; } else { header ("Content-type: image/gif"); Modified: trunk/monitor-core/web/header.php =================================================================== --- trunk/monitor-core/web/header.php 2007-12-31 22:05:04 UTC (rev 918) +++ trunk/monitor-core/web/header.php 2008-01-04 22:13:44 UTC (rev 919) @@ -243,11 +243,7 @@ # If there are graphs present, show ranges. # if (!$physical) { - $context_ranges[]="hour"; - $context_ranges[]="day"; - $context_ranges[]="week"; - $context_ranges[]="month"; - $context_ranges[]="year"; + $context_ranges = array_keys( $time_ranges ); if ($jobrange) $context_ranges[]="job"; @@ -255,7 +251,7 @@ ."<SELECT NAME=\"r\" OnChange=\"ganglia_form.submit();\">\n"; foreach ($context_ranges as $v) { $url=rawurlencode($v); - $range_menu .= "<OPTION VALUE=\"$url\" "; + $range_menu .= "<OPTION VALUE=\"$url\""; if ($v == $range) $range_menu .= "SELECTED"; $range_menu .= ">$v\n"; @@ -337,7 +333,7 @@ $size_menu = '<SELECT NAME="z" OnChange="ganglia_form.submit();">'; - $size_arr = array("small","medium","large"); + $size_arr = $graph_sizes_keys; foreach ($size_arr as $size) { $size_menu .= "<OPTION VALUE=\"$size\""; if (isset($clustergraphsize) && ($size === $clustergraphsize)) { Modified: trunk/monitor-core/web/host_gmetrics.php =================================================================== --- trunk/monitor-core/web/host_gmetrics.php 2007-12-31 22:05:04 UTC (rev 918) +++ trunk/monitor-core/web/host_gmetrics.php 2008-01-04 22:13:44 UTC (rev 919) @@ -1,13 +1,15 @@ <?php /* $Id$ */ -$clustername = escapeshellcmd(rawurldecode($_GET["c"])); -$hostname = escapeshellcmd(rawurldecode($_GET["h"])); +# ATD - functions.php needs to be first, as it defines clean_string() +include_once "functions.php"; +# ATD - these must be defined before including ganglia.php +$clustername = escapeshellcmd( clean_string( rawurldecode( $_GET["c"] ) ) ); +$hostname = escapeshellcmd( clean_string( rawurldecode($_GET["h"] ) ) ); $context = "host"; - +# ATD - the order of the rest of these doesn't matter AFAIK. include_once "conf.php"; include_once "ganglia.php"; -include_once "functions.php"; include_once "get_ganglia.php"; include_once "./class.TemplatePower.inc.php"; Modified: trunk/monitor-core/web/index.php =================================================================== --- trunk/monitor-core/web/index.php 2007-12-31 22:05:04 UTC (rev 918) +++ trunk/monitor-core/web/index.php 2008-01-04 22:13:44 UTC (rev 919) @@ -1,8 +1,9 @@ <?php /* $Id$ */ include_once "./conf.php"; +# ATD - function.php must be included before get_context.php. It defines some needed functions. +include_once "./functions.php"; include_once "./get_context.php"; -include_once "./functions.php"; include_once "./ganglia.php"; include_once "./get_ganglia.php"; include_once "./class.TemplatePower.inc.php"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ber...@us...> - 2008-01-08 00:43:57
|
Revision: 920 http://ganglia.svn.sourceforge.net/ganglia/?rev=920&view=rev Author: bernardli Date: 2008-01-07 16:44:01 -0800 (Mon, 07 Jan 2008) Log Message: ----------- Patch to patch previous patch (by Jesse Becker) Modified Paths: -------------- trunk/monitor-core/web/conf.php trunk/monitor-core/web/get_context.php Modified: trunk/monitor-core/web/conf.php =================================================================== --- trunk/monitor-core/web/conf.php 2008-01-04 22:13:44 UTC (rev 919) +++ trunk/monitor-core/web/conf.php 2008-01-08 00:44:01 UTC (rev 920) @@ -28,7 +28,7 @@ # Leave this alone if rrdtool is installed in $gmetad_root, # otherwise, change it if it is installed elsewhere (like /usr/bin) -define("RRDTOOL", "/sw/bin/rrdtool"); +define("RRDTOOL", "/usr/bin/rrdtool"); # # If you want to grab data from a different ganglia source specify it here. Modified: trunk/monitor-core/web/get_context.php =================================================================== --- trunk/monitor-core/web/get_context.php 2008-01-04 22:13:44 UTC (rev 919) +++ trunk/monitor-core/web/get_context.php 2008-01-08 00:44:01 UTC (rev 920) @@ -13,7 +13,7 @@ escapeshellcmd( clean_string( rawurldecode($_GET["G"]) ) ) : NULL; $hostname = isset($_GET["h"]) ? escapeshellcmd( clean_string( rawurldecode($_GET["h"]) ) ) : NULL; -$range = in_array($_GET["r"], array_keys( $time_ranges ) ) ? +$range = isset($_GET["r"]) && in_array($_GET["r"], array_keys( $time_ranges ) ) ? escapeshellcmd( rawurldecode($_GET["r"])) : NULL; $metricname = isset($_GET["m"]) ? escapeshellcmd( clean_string( rawurldecode($_GET["m"]) ) ) : NULL; @@ -28,6 +28,8 @@ # The 'p' variable specifies the verbosity level in the physical view. $physical = isset($_GET["p"]) ? clean_number( $_GET["p"] ) : NULL; +$tree = isset($_GET["t"]) ? + escapeshellcmd($_GET["t"] ) : NULL; # A custom range value for job graphs, in -sec. $jobrange = isset($_GET["jr"]) ? clean_number( $_GET["jr"] ) : NULL; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2008-01-18 09:26:29
|
Revision: 926 http://ganglia.svn.sourceforge.net/ganglia/?rev=926&view=rev Author: carenas Date: 2008-01-18 01:26:34 -0800 (Fri, 18 Jan 2008) Log Message: ----------- frontend: fix display of float metric values in the charts by Jesse Becker adds clean_float function and uses it for 'v' entity. problem introduced in r919 Modified Paths: -------------- trunk/monitor-core/web/functions.php trunk/monitor-core/web/graph.php Modified: trunk/monitor-core/web/functions.php =================================================================== --- trunk/monitor-core/web/functions.php 2008-01-18 08:27:34 UTC (rev 925) +++ trunk/monitor-core/web/functions.php 2008-01-18 09:26:34 UTC (rev 926) @@ -432,6 +432,14 @@ } #------------------------------------------------------------------------------- +# If arg is a valid floating point number, return it. Otherwise, return null. +function clean_float( $value ) { + return preg_match('/^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/', $value) ? + $value : + null; +} + +#------------------------------------------------------------------------------- # Return true if string is a 3 or 6 character hex color. Return false otherwise. function is_valid_hex_color( $string ) { Modified: trunk/monitor-core/web/graph.php =================================================================== --- trunk/monitor-core/web/graph.php 2008-01-18 08:27:34 UTC (rev 925) +++ trunk/monitor-core/web/graph.php 2008-01-18 09:26:34 UTC (rev 926) @@ -23,7 +23,7 @@ $min = isset($_GET["n"]) ? clean_number( rawurldecode($_GET["n"] ) ) : NULL; $value = isset($_GET["v"]) ? - clean_number( rawurldecode( $_GET["v"] ) ) : NULL; + clean_float( rawurldecode( $_GET["v"] ) ) : NULL; $load_color = isset($_GET["l"]) && is_valid_hex_color( rawurldecode( $_GET[ 'l' ] ) ) ? escapeshellcmd( rawurldecode( $_GET["l"] ) ) : NULL; $vlabel = isset($_GET["vl"]) ? This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ber...@us...> - 2008-02-11 21:50:53
|
Revision: 943 http://ganglia.svn.sourceforge.net/ganglia/?rev=943&view=rev Author: bernardli Date: 2008-02-11 13:50:57 -0800 (Mon, 11 Feb 2008) Log Message: ----------- Add the following functionalities to the web frontend: - Group metrics by <EXTRA_DATA GROUP> - Use <EXTRA_DATA TITLE> as the title when graphing - Add <EXTRA_DATA DESC> as tooltop when hover over graph image by using <img title> tag Modified Paths: -------------- trunk/monitor-core/web/get_context.php trunk/monitor-core/web/graph.php trunk/monitor-core/web/host_view.php trunk/monitor-core/web/templates/default/host_view.tpl Modified: trunk/monitor-core/web/get_context.php =================================================================== --- trunk/monitor-core/web/get_context.php 2008-02-08 18:56:12 UTC (rev 942) +++ trunk/monitor-core/web/get_context.php 2008-02-11 21:50:57 UTC (rev 943) @@ -17,6 +17,8 @@ escapeshellcmd( rawurldecode($_GET["r"])) : NULL; $metricname = isset($_GET["m"]) ? escapeshellcmd( clean_string( rawurldecode($_GET["m"]) ) ) : NULL; +$metrictitle = isset($_GET["ti"]) ? + escapeshellcmd( clean_string( rawurldecode($_GET["ti"]) ) ) : NULL; $sort = isset($_GET["s"]) ? escapeshellcmd( clean_string( rawurldecode($_GET["s"]) ) ) : NULL; $controlroom = isset($_GET["cr"]) ? Modified: trunk/monitor-core/web/graph.php =================================================================== --- trunk/monitor-core/web/graph.php 2008-02-08 18:56:12 UTC (rev 942) +++ trunk/monitor-core/web/graph.php 2008-02-11 21:50:57 UTC (rev 943) @@ -298,7 +298,7 @@ else if ($summary) $title = "$hostname"; else - $title = $metricname; + $title = $metrictitle; } # Calculate time range. Modified: trunk/monitor-core/web/host_view.php =================================================================== --- trunk/monitor-core/web/host_view.php 2008-02-08 18:56:12 UTC (rev 942) +++ trunk/monitor-core/web/host_view.php 2008-02-11 21:50:57 UTC (rev 943) @@ -31,6 +31,7 @@ } $tpl->assign("ip", $hosts_up['IP']); +$g_metrics_group = array(); foreach ($metrics as $name => $v) { @@ -57,7 +58,24 @@ $encodeUnits = rawurlencode($v['UNITS']); $graphargs .= "&vl=$encodeUnits"; } + if ($v['TITLE']) { + $title = $v['TITLE']; + $graphargs .= "&ti=$title"; + } $g_metrics[$name]['graph'] = $graphargs; + $g_metrics[$name]['description'] = $v['DESC']; + + # Setup an array of groups that can be used for sorting in group view + if ( isset($metrics[$name]['GROUP']) ) { + $group = $metrics[$name]['GROUP']; + } else { + $group = ""; + } + if ( isset($g_metrics_group[$group]) ) { + $g_metrics_group[$group] = array_merge($g_metrics_group[$group], $name); + } else { + $g_metrics_group[$group] = array($name); + } } } # Add the uptime metric for this host. Cannot be done in ganglia.php, @@ -106,19 +124,32 @@ } # Show graphs. -if (is_array($g_metrics)) +if ( is_array($g_metrics) && is_array($g_metrics_group) ) { - ksort($g_metrics); + ksort($g_metrics_group); - $i = 0; - foreach ( $g_metrics as $name => $v ) + foreach ( $g_metrics_group as $group => $metric_array ) { - $tpl->newBlock("vol_metric_info"); - $tpl->assign("graphargs", $v['graph']); - $tpl->assign("alt", "$hostname $name"); - if($i++ %2) - $tpl->assign("br", "<BR>"); + if ( $group == "" ) { + $group = "no_group"; + } + $tpl->newBlock("vol_group_info"); + $tpl->assign("group", $group); + $i = 0; + foreach ( $g_metrics as $name => $v ) + { + if ( in_array($name, $metric_array) ) { + $tpl->newBlock("vol_metric_info"); + $tpl->assign("graphargs", $v['graph']); + $tpl->assign("alt", "$hostname $name"); + if (isset($v['description'])) + $tpl->assign("desc", $v['description']); + if($i++ %2) + $tpl->assign("br", "<BR>"); + } + } } + } $tpl->printToScreen(); Modified: trunk/monitor-core/web/templates/default/host_view.tpl =================================================================== --- trunk/monitor-core/web/templates/default/host_view.tpl 2008-02-08 18:56:12 UTC (rev 942) +++ trunk/monitor-core/web/templates/default/host_view.tpl 2008-02-11 21:50:57 UTC (rev 943) @@ -91,11 +91,20 @@ <TR> <TD> +<!-- START BLOCK : vol_group_info --> +<TABLE BORDER="0" WIDTH="100%"> +<TR> + <TD CLASS=title> + {group} metrics + </TD> +</TR> +</TABLE> <!-- START BLOCK : vol_metric_info --> <A HREF="./graph.php?&{graphargs}&z=large"> -<IMG BORDER=0 ALT="{alt}" SRC="./graph.php?{graphargs}">{br} +<IMG BORDER=0 ALT="{alt}" SRC="./graph.php?{graphargs}" TITLE="{desc}">{br} </A> <!-- END BLOCK : vol_metric_info --> +<!-- END BLOCK : vol_group_info --> </TD> </TR> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2008-04-18 08:51:52
|
Revision: 1253 http://ganglia.svn.sourceforge.net/ganglia/?rev=1253&view=rev Author: carenas Date: 2008-04-18 01:51:58 -0700 (Fri, 18 Apr 2008) Log Message: ----------- web: remove redirect hack in header with partial templates Modified Paths: -------------- trunk/monitor-core/web/header.php trunk/monitor-core/web/templates/default/header.tpl Modified: trunk/monitor-core/web/header.php =================================================================== --- trunk/monitor-core/web/header.php 2008-04-16 21:23:38 UTC (rev 1252) +++ trunk/monitor-core/web/header.php 2008-04-18 08:51:58 UTC (rev 1253) @@ -17,16 +17,6 @@ else $header = "header"; -$tpl = new TemplatePower( template("$header.tpl") ); -$tpl->prepare(); -$tpl->assign( "page_title", $title ); -$tpl->assign("refresh", $default_refresh); - -# Skip the "ganglia_header" block (Logo + "Grid Report for ...") when redirecting -if ( !strstr($clustername, "http://") && $header == "header" ) { - $tpl->newBlock("ganglia_header"); -} - # # sacerdoti: beginning of Grid tree state handling # @@ -56,6 +46,10 @@ $gridstack_str = join(">", $gridstack); $gridstack_url = rawurlencode($gridstack_str); +if (strstr($clustername, "http://")) { + header("Location: $clustername?gw=fwd&gs=$gridstack_url"); +} + if ($initgrid or $gridwalk) { # Use cookie so we dont have to pass gridstack around within this site. @@ -73,23 +67,16 @@ list($parentgrid, $parentlink) = explode("@", $gridstack[count($gridstack)-2]); } +$tpl = new TemplatePower( template("$header.tpl") ); +$tpl->prepare(); +$tpl->assign("page_title", $title); +$tpl->assign("refresh", $default_refresh); + # Templated Logo image $tpl->assign("images","./templates/$template_name/images"); $tpl->assign( "date", date("r")); -$tpl->assign( "page_title", $title ); -# Setup a redirect to a remote server if you choose a grid from pulldown menu. -# Tell destination server that we're walking foward in the grid tree. -if (strstr($clustername, "http://")) - { - $tpl->assign("refresh", "0"); - $tpl->assign("redirect", ";URL=$clustername?gw=fwd&gs=$gridstack_url"); - echo "<h2>Redirecting, please wait...</h2>"; - $tpl->printToScreen(); - exit; - } - # The page to go to when "Get Fresh Data" is pressed. if (isset($page)) $tpl->assign("page",$page); Modified: trunk/monitor-core/web/templates/default/header.tpl =================================================================== --- trunk/monitor-core/web/templates/default/header.tpl 2008-04-16 21:23:38 UTC (rev 1252) +++ trunk/monitor-core/web/templates/default/header.tpl 2008-04-18 08:51:58 UTC (rev 1253) @@ -3,12 +3,11 @@ <HEAD> <TITLE>Ganglia:: {page_title}</TITLE> <META http-equiv="Content-type" content="text/html; charset=utf-8"> -<META http-equiv="refresh" content="{refresh}{redirect}"> +<META http-equiv="refresh" content="{refresh}"> <LINK rel="stylesheet" href="./styles.css" type="text/css"> </HEAD> <BODY BGCOLOR="#FFFFFF"> -<!-- START BLOCK : ganglia_header --> <FORM ACTION="{page}" METHOD="GET" NAME="ganglia_form"> <TABLE WIDTH="100%"> <TR> @@ -50,4 +49,3 @@ {node_menu} </FONT> <HR SIZE="1" NOSHADE> -<!-- END BLOCK : ganglia_header --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ber...@us...> - 2008-02-11 23:57:02
|
Revision: 945 http://ganglia.svn.sourceforge.net/ganglia/?rev=945&view=rev Author: bernardli Date: 2008-02-11 15:57:04 -0800 (Mon, 11 Feb 2008) Log Message: ----------- Fix bugzilla #178 (patch by Alex Dean): - Renamed clean_float() to clean_number() - Change to an is_numeric() call rather than a regular expression. This remove the dependency on the ctype extension. Equivalent behavior with small performance gain. - Change all calls to clean_float() to use clean_number(). Modified Paths: -------------- trunk/monitor-core/web/functions.php trunk/monitor-core/web/graph.php Modified: trunk/monitor-core/web/functions.php =================================================================== --- trunk/monitor-core/web/functions.php 2008-02-11 21:58:32 UTC (rev 944) +++ trunk/monitor-core/web/functions.php 2008-02-11 23:57:04 UTC (rev 945) @@ -421,25 +421,13 @@ } #------------------------------------------------------------------------------- -# If arg is entirely numeric, return it. Otherwise, return null. -function clean_number( $digit ) +# If arg is a valid number, return it. Otherwise, return null. +function clean_number( $value ) { - $return_value = null; - if( ctype_digit( $digit ) ) { - $return_value = $digit; - } - return $return_value; + return is_numeric( $value ) ? $value : null; } #------------------------------------------------------------------------------- -# If arg is a valid floating point number, return it. Otherwise, return null. -function clean_float( $value ) { - return preg_match('/^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/', $value) ? - $value : - null; -} - -#------------------------------------------------------------------------------- # Return true if string is a 3 or 6 character hex color. Return false otherwise. function is_valid_hex_color( $string ) { Modified: trunk/monitor-core/web/graph.php =================================================================== --- trunk/monitor-core/web/graph.php 2008-02-11 21:58:32 UTC (rev 944) +++ trunk/monitor-core/web/graph.php 2008-02-11 23:57:04 UTC (rev 945) @@ -23,7 +23,7 @@ $min = isset($_GET["n"]) ? clean_number( rawurldecode($_GET["n"] ) ) : NULL; $value = isset($_GET["v"]) ? - clean_float( rawurldecode( $_GET["v"] ) ) : NULL; + clean_number( rawurldecode( $_GET["v"] ) ) : NULL; $load_color = isset($_GET["l"]) && is_valid_hex_color( rawurldecode( $_GET[ 'l' ] ) ) ? escapeshellcmd( rawurldecode( $_GET["l"] ) ) : NULL; $vlabel = isset($_GET["vl"]) ? This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ber...@us...> - 2008-02-12 00:23:26
|
Revision: 947 http://ganglia.svn.sourceforge.net/ganglia/?rev=947&view=rev Author: bernardli Date: 2008-02-11 16:23:31 -0800 (Mon, 11 Feb 2008) Log Message: ----------- Do not show the "Columns" and "Size" drop-down menus if $showhosts is off Modified Paths: -------------- trunk/monitor-core/web/cluster_view.php trunk/monitor-core/web/templates/default/cluster_view.tpl Modified: trunk/monitor-core/web/cluster_view.php =================================================================== --- trunk/monitor-core/web/cluster_view.php 2008-02-12 00:00:18 UTC (rev 946) +++ trunk/monitor-core/web/cluster_view.php 2008-02-12 00:23:31 UTC (rev 947) @@ -74,11 +74,6 @@ $tpl->assign("metric","$metricname $units"); $tpl->assign("sort", $sort); $tpl->assign("range", $range); -# Host columns menu defined in header.php -if ($showhosts) { - $tpl->assign("cols_menu", $cols_menu); - $tpl->assign("size_menu", $size_menu); -} $tpl->assign("checked$showhosts", "checked"); $sorted_hosts = array(); @@ -128,6 +123,13 @@ $name_url = rawurlencode($name); $pie_args .= "&$name_url=$n,$color"; } + $tpl->assign("pie_args", $pie_args); + + # Host columns menu defined in header.php + $tpl->newBlock('columns_size_dropdown'); + $tpl->assign("cols_menu", $cols_menu); + $tpl->assign("size_menu", $size_menu); + } else { @@ -138,8 +140,8 @@ $down_color = $load_colors["down"]; $pie_args .= "&Up=$cluster[HOSTS_UP],$up_color"; $pie_args .= "&Down=$cluster[HOSTS_DOWN],$down_color"; + $tpl->assign("pie_args", $pie_args); } -$tpl->assign("pie_args", $pie_args); # No reason to go on if we have no up hosts. if (!is_array($hosts_up) or !$showhosts) { Modified: trunk/monitor-core/web/templates/default/cluster_view.tpl =================================================================== --- trunk/monitor-core/web/templates/default/cluster_view.tpl 2008-02-12 00:00:18 UTC (rev 946) +++ trunk/monitor-core/web/templates/default/cluster_view.tpl 2008-02-12 00:23:31 UTC (rev 947) @@ -64,11 +64,13 @@ {cluster} <strong>{metric}</strong> last <strong>{range}</strong> sorted <strong>{sort}</strong> +<!-- START BLOCK : columns_size_dropdown --> | <FONT SIZE="-1"> Columns {cols_menu} Size {size_menu} </FONT> +<!-- END BLOCK : columns_size_dropdown --> </TD> </TR> </TABLE> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ber...@us...> - 2008-02-12 20:14:30
|
Revision: 953 http://ganglia.svn.sourceforge.net/ganglia/?rev=953&view=rev Author: bernardli Date: 2008-02-12 12:14:34 -0800 (Tue, 12 Feb 2008) Log Message: ----------- Allow metric graphs to be displayed in multiple groups in the frontend Modified Paths: -------------- trunk/monitor-core/web/ganglia.php trunk/monitor-core/web/host_view.php Modified: trunk/monitor-core/web/ganglia.php =================================================================== --- trunk/monitor-core/web/ganglia.php 2008-02-12 19:55:04 UTC (rev 952) +++ trunk/monitor-core/web/ganglia.php 2008-02-12 20:14:34 UTC (rev 953) @@ -223,7 +223,17 @@ break; case "EXTRA_DATA": - $metrics[$metricname] = array_merge($metrics[$metricname], $attrs); + if ( isset($attrs['GROUP']) ) { + if ( isset($metrics[$metricname]['GROUP']) ) { + $group_array = array_merge( (array)$attrs['GROUP'], $metrics[$metricname]['GROUP'] ); + } else { + $group_array = (array)$attrs['GROUP']; + } + $metrics[$metricname] = array_merge($metrics[$metricname], $attrs); + $metrics[$metricname]['GROUP'] = $group_array; + } else { + $metrics[$metricname] = array_merge($metrics[$metricname], $attrs); + } break; default: Modified: trunk/monitor-core/web/host_view.php =================================================================== --- trunk/monitor-core/web/host_view.php 2008-02-12 19:55:04 UTC (rev 952) +++ trunk/monitor-core/web/host_view.php 2008-02-12 20:14:34 UTC (rev 953) @@ -67,14 +67,17 @@ # Setup an array of groups that can be used for sorting in group view if ( isset($metrics[$name]['GROUP']) ) { - $group = $metrics[$name]['GROUP']; + $groups = $metrics[$name]['GROUP']; } else { - $group = ""; + $groups = array(""); } - if ( isset($g_metrics_group[$group]) ) { - $g_metrics_group[$group] = array_merge($g_metrics_group[$group], (array)$name); - } else { - $g_metrics_group[$group] = array($name); + + foreach ( $groups as $group) { + if ( isset($g_metrics_group[$group]) ) { + $g_metrics_group[$group] = array_merge($g_metrics_group[$group], (array)$name); + } else { + $g_metrics_group[$group] = array($name); + } } } } @@ -136,6 +139,7 @@ $tpl->newBlock("vol_group_info"); $tpl->assign("group", $group); $i = 0; + ksort($g_metrics); foreach ( $g_metrics as $name => $v ) { if ( in_array($name, $metric_array) ) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ber...@us...> - 2008-02-13 05:13:04
|
Revision: 959 http://ganglia.svn.sourceforge.net/ganglia/?rev=959&view=rev Author: bernardli Date: 2008-02-12 21:13:02 -0800 (Tue, 12 Feb 2008) Log Message: ----------- If "Show Hosts" = no, do not display node legend at the bottom Modified Paths: -------------- trunk/monitor-core/web/cluster_view.php trunk/monitor-core/web/templates/default/cluster_view.tpl Modified: trunk/monitor-core/web/cluster_view.php =================================================================== --- trunk/monitor-core/web/cluster_view.php 2008-02-13 04:56:45 UTC (rev 958) +++ trunk/monitor-core/web/cluster_view.php 2008-02-13 05:13:02 UTC (rev 959) @@ -129,7 +129,7 @@ $tpl->newBlock('columns_size_dropdown'); $tpl->assign("cols_menu", $cols_menu); $tpl->assign("size_menu", $size_menu); - + $tpl->newBlock('node_legend'); } else { Modified: trunk/monitor-core/web/templates/default/cluster_view.tpl =================================================================== --- trunk/monitor-core/web/templates/default/cluster_view.tpl 2008-02-13 04:56:45 UTC (rev 958) +++ trunk/monitor-core/web/templates/default/cluster_view.tpl 2008-02-13 05:13:02 UTC (rev 959) @@ -85,6 +85,8 @@ </TABLE> <p> +<!-- START BLOCK : node_legend --> (Nodes colored by 1-minute load) | <A HREF="./node_legend.html">Legend</A> +<!-- END BLOCK : node_legend --> </CENTER> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2008-03-13 03:33:55
|
Revision: 1051 http://ganglia.svn.sourceforge.net/ganglia/?rev=1051&view=rev Author: hawson Date: 2008-03-12 20:33:57 -0700 (Wed, 12 Mar 2008) Log Message: ----------- Implement modular graphs. All specific graph definitions are handled a single .php file. Modified Paths: -------------- trunk/monitor-core/web/conf.php trunk/monitor-core/web/functions.php trunk/monitor-core/web/graph.php Added Paths: ----------- trunk/monitor-core/web/graph.d/ trunk/monitor-core/web/graph.d/cpu_report.php trunk/monitor-core/web/graph.d/load_report.php trunk/monitor-core/web/graph.d/mem_report.php trunk/monitor-core/web/graph.d/metric.php trunk/monitor-core/web/graph.d/network_report.php trunk/monitor-core/web/graph.d/packet_report.php trunk/monitor-core/web/graph.d/sample_report.php Modified: trunk/monitor-core/web/conf.php =================================================================== --- trunk/monitor-core/web/conf.php 2008-03-07 12:30:56 UTC (rev 1050) +++ trunk/monitor-core/web/conf.php 2008-03-13 03:33:57 UTC (rev 1051) @@ -25,6 +25,9 @@ # otherwise, change it if it is installed elsewhere (like /usr/bin) define("RRDTOOL", "/usr/bin/rrdtool"); + +# Location for modular-graph files. +$graphdir='./graph.d'; # # If you want to grab data from a different ganglia source specify it here. # Although, it would be strange to alter the IP since the Round-Robin Modified: trunk/monitor-core/web/functions.php =================================================================== --- trunk/monitor-core/web/functions.php 2008-03-07 12:30:56 UTC (rev 1050) +++ trunk/monitor-core/web/functions.php 2008-03-13 03:33:57 UTC (rev 1051) @@ -419,6 +419,10 @@ { return htmlentities( $string ); } +#------------------------------------------------------------------------------- +function sanitize ( $string ) { + return escapeshellcmd( clean_string( rawurldecode( $string ) ) ) ; +} #------------------------------------------------------------------------------- # If arg is a valid number, return it. Otherwise, return null. Added: trunk/monitor-core/web/graph.d/cpu_report.php =================================================================== --- trunk/monitor-core/web/graph.d/cpu_report.php (rev 0) +++ trunk/monitor-core/web/graph.d/cpu_report.php 2008-03-13 03:33:57 UTC (rev 1051) @@ -0,0 +1,77 @@ +<?php + + +/* Pass in by reference! */ +function graph_cpu_report ( &$rrdtool_graph ) { + + global $context, + $cpu_idle_color, + $cpu_nice_color, + $cpu_system_color, + $cpu_user_color, + $cpu_wio_color, + $hostname, + $rrd_dir, + $size; + + $rrdtool_graph['height'] += $size == 'medium' ? 28 : 0 ; + $rrdtool_graph['title'] = 'CPU'; + $rrdtool_graph['upper-limit'] = '100'; + $rrdtool_graph['lower-limit'] = '0'; + $rrdtool_graph['vertical-label'] = 'Percent'; + $rrdtool_graph['extras'] = '--rigid'; + + if($context != "host" ) { + + + /* If we are not in a host context, then we need to calculate the average */ + $series = + "DEF:'num_nodes'='${rrd_dir}/cpu_user.rrd':'num':AVERAGE " + . "DEF:'cpu_user'='${rrd_dir}/cpu_user.rrd':'sum':AVERAGE " + . "CDEF:'ccpu_user'=cpu_user,num_nodes,/ " + . "DEF:'cpu_nice'='${rrd_dir}/cpu_nice.rrd':'sum':AVERAGE " + . "CDEF:'ccpu_nice'=cpu_nice,num_nodes,/ " + . "DEF:'cpu_system'='${rrd_dir}/cpu_system.rrd':'sum':AVERAGE " + . "CDEF:'ccpu_system'=cpu_system,num_nodes,/ " + . "DEF:'cpu_idle'='${rrd_dir}/cpu_idle.rrd':'sum':AVERAGE " + . "CDEF:'ccpu_idle'=cpu_idle,num_nodes,/ " + . "AREA:'ccpu_user'#$cpu_user_color:'User CPU' " + . "STACK:'ccpu_nice'#$cpu_nice_color:'Nice CPU' " + . "STACK:'ccpu_system'#$cpu_system_color:'System CPU' "; + + if (file_exists("$rrd_dir/cpu_wio.rrd")) { + $series .= "DEF:'cpu_wio'='${rrd_dir}/cpu_wio.rrd':'sum':AVERAGE " + ."CDEF:'ccpu_wio'=cpu_wio,num_nodes,/ " + ."STACK:'ccpu_wio'#$cpu_wio_color:'WAIT CPU' "; + } + + $series .= "STACK:'ccpu_idle'#$cpu_idle_color:'Idle CPU' "; + } + // Context is not "host" + else { + + $rrdtool_graph['title'] .= " - $hostname"; + + $series ="DEF:'cpu_user'='${rrd_dir}/cpu_user.rrd':'sum':AVERAGE " + ."DEF:'cpu_nice'='${rrd_dir}/cpu_nice.rrd':'sum':AVERAGE " + ."DEF:'cpu_system'='${rrd_dir}/cpu_system.rrd':'sum':AVERAGE " + ."DEF:'cpu_idle'='${rrd_dir}/cpu_idle.rrd':'sum':AVERAGE " + ."AREA:'cpu_user'#$cpu_user_color:'User CPU' " + ."STACK:'cpu_nice'#$cpu_nice_color:'Nice CPU' " + ."STACK:'cpu_system'#$cpu_system_color:'System CPU' "; + + if (file_exists("$rrd_dir/cpu_wio.rrd")) { + $series .= "DEF:'cpu_wio'='${rrd_dir}/cpu_wio.rrd':'sum':AVERAGE "; + $series .= "STACK:'cpu_wio'#$cpu_wio_color:'WAIT CPU' "; + } + + $series .= "STACK:'cpu_idle'#$cpu_idle_color:'Idle CPU' "; + } + + + $rrdtool_graph['series'] = $series; + + return $rrdtool_graph; +} + +?> Added: trunk/monitor-core/web/graph.d/load_report.php =================================================================== --- trunk/monitor-core/web/graph.d/load_report.php (rev 0) +++ trunk/monitor-core/web/graph.d/load_report.php 2008-03-13 03:33:57 UTC (rev 1051) @@ -0,0 +1,48 @@ +<?php + + +/* Pass in by reference! */ +function graph_load_report ( &$rrdtool_graph ) { + + global $context, + $cpu_num_color, + $cpu_user_color, + $hostname, + $load_one_color, + $num_nodes_color, + $proc_run_color, + $rrd_dir, + $size; + + $rrdtool_graph['height'] += $size == 'medium' ? 28 : 0 ; + $rrdtool_graph['title'] = 'Load'; + $rrdtool_graph['lower-limit'] = '0'; + $rrdtool_graph['vertical-label'] = 'Load/Procs'; + $rrdtool_graph['extras'] = '--rigid'; + + $series = "DEF:'load_one'='${rrd_dir}/load_one.rrd':'sum':AVERAGE " + ."DEF:'proc_run'='${rrd_dir}/proc_run.rrd':'sum':AVERAGE " + ."DEF:'cpu_num'='${rrd_dir}/cpu_num.rrd':'sum':AVERAGE "; + + if( $context != 'host' ) { + $series .="DEF:'num_nodes'='${rrd_dir}/cpu_num.rrd':'num':AVERAGE "; + $series .= "LINE2:'num_nodes'#$num_nodes_color:'Nodes' "; + } + + if ($context == 'host') + $rrdtool_graph['title'] .= " - $hostname"; + + + $series .="AREA:'load_one'#$load_one_color:'1-min Load' "; + + $series .="LINE2:'cpu_num'#$cpu_num_color:'CPUs' "; + $series .="LINE2:'proc_run'#$proc_run_color:'Running Processes' "; + + + $rrdtool_graph['series'] = $series; + + return $rrdtool_graph; + +} + +?> Added: trunk/monitor-core/web/graph.d/mem_report.php =================================================================== --- trunk/monitor-core/web/graph.d/mem_report.php (rev 0) +++ trunk/monitor-core/web/graph.d/mem_report.php 2008-03-13 03:33:57 UTC (rev 1051) @@ -0,0 +1,58 @@ +<?php + + +/* Pass in by reference! */ +function graph_mem_report ( &$rrdtool_graph ) { + + global $context, + $hostname, + $mem_shared_color, + $mem_cached_color, + $mem_buffered_color, + $mem_swapped_color, + $mem_used_color, + $cpu_num_color, + $rrd_dir, + $size; + + $rrdtool_graph['height'] += $size == 'medium' ? 19 : 0 ; // Two lines of text in the legend + $rrdtool_graph['title'] = 'Memory'; + $rrdtool_graph['lower-limit'] = '0'; + $rrdtool_graph['vertical-label'] = 'Bytes'; + $rrdtool_graph['extras'] = '--rigid --base 1024'; + + if ($context == 'host') + $rrdtool_graph['title'] .= " - $hostname"; + + + $series = "DEF:'mem_total'='${rrd_dir}/mem_total.rrd':'sum':AVERAGE " + ."CDEF:'bmem_total'=mem_total,1024,* " + ."DEF:'mem_shared'='${rrd_dir}/mem_shared.rrd':'sum':AVERAGE " + ."CDEF:'bmem_shared'=mem_shared,1024,* " + ."DEF:'mem_free'='${rrd_dir}/mem_free.rrd':'sum':AVERAGE " + ."CDEF:'bmem_free'=mem_free,1024,* " + ."DEF:'mem_cached'='${rrd_dir}/mem_cached.rrd':'sum':AVERAGE " + ."CDEF:'bmem_cached'=mem_cached,1024,* " + ."DEF:'mem_buffers'='${rrd_dir}/mem_buffers.rrd':'sum':AVERAGE " + ."CDEF:'bmem_buffers'=mem_buffers,1024,* " + ."CDEF:'bmem_used'='bmem_total','bmem_shared',-,'bmem_free',-,'bmem_cached',-,'bmem_buffers',- " + ."AREA:'bmem_used'#$mem_used_color:'Memory Used' " + ."STACK:'bmem_shared'#$mem_shared_color:'Memory Shared' " + ."STACK:'bmem_cached'#$mem_cached_color:'Memory Cached' " + ."STACK:'bmem_buffers'#$mem_buffered_color:'Memory Buffered' "; + if (file_exists("$rrd_dir/swap_total.rrd")) { + $series .= "DEF:'swap_total'='${rrd_dir}/swap_total.rrd':'sum':AVERAGE " + ."DEF:'swap_free'='${rrd_dir}/swap_free.rrd':'sum':AVERAGE " + ."CDEF:'bmem_swapped'='swap_total','swap_free',-,1024,* " + ."STACK:'bmem_swapped'#$mem_swapped_color:'Memory Swapped' "; + } + $series .= "LINE2:'bmem_total'#$cpu_num_color:'Total In-Core Memory' "; + + + $rrdtool_graph['series'] = $series; + + return $rrdtool_graph; + +} + +?> Added: trunk/monitor-core/web/graph.d/metric.php =================================================================== --- trunk/monitor-core/web/graph.d/metric.php (rev 0) +++ trunk/monitor-core/web/graph.d/metric.php 2008-03-13 03:33:57 UTC (rev 1051) @@ -0,0 +1,127 @@ +<?php + +// This report is used for specific metric graphs at the bottom of the cluster_view page. + +/* Pass in by reference! */ +function graph_metric ( &$rrdtool_graph ) { + + global $context, + $default_metric_color, + $hostname, + $jobstart, + $load_color, + $max, + $meta_designator, + $metricname, + $min, + $range, + $rrd_dir, + $size, + $summary, + $value, + $vlabel; + + $rrdtool_graph['height'] += 0 ; //no fudge needed + + switch ($context) { + + case 'host': + + if ($summary) { + $rrdtool_graph['title'] = $hostname; + $prefix = $metricname; + } + else { + $rrdtool_graph['title'] = $metricname; + $prefix = $hostname; + } + + $prefix = $summary ? $metricname : $hostname; + $value = $value > 1000 + ? number_format($value) + : number_format($value,2); + + if ($range == 'job') { + $hrs = intval (-$jobrange / 3600); + $subtitle = "$prefix last ${hrs} (now $value)"; + } else { + $subtitle = "$prefix last $range (now $value)"; + } + + break; + + case 'meta': + $rrdtool_graph['title'] = "$meta_designator ". $rrdtool_graph['title'] ."last $range";; + break; + + case 'grid': + $rrdtool_graph['title'] = "$meta_designator ". $rrdtool_graph['title'] ."last $range"; + break; + + case 'cluster': + $rrdtool_graph['title'] = "$clustername " . $rrdtool_graph['title'] ."last $range"; + break; + + default: + + if ($size == 'small') { + $rrdtool_graph['title'] = $hostname; + } else if ($summary) { + $rrdtool_graph['title'] = $hostname; + } else { + $rrdtool_graph['title'] = $metricname; + } + + break; + + } + + if ($load_color) + $rrdtool_graph['color'] = "BACK#'$load_color'"; + + if (isset($max) && is_numeric($max)) + $rrdtool_graph['upper-limit'] = $max; + + if (isset($min) && is_numeric($min)) + $rrdtool_graph['lower-limit'] = $min; + + if ($vlabel ) { + // We should set $vlabel, even if it isn't used for spacing + // and alignment reasons. This is mostly for aesthetics + $temp_vlabel = trim($vlabel); + $rrdtool_graph['vertical-label'] = strlen($temp_vlabel) + ? $temp_vlabel + : ' '; + } else { + $rrdtool_graph['vertical-label'] = ' '; + } + /* else if ( isset($rrdtool_graph['lower-limit']) or + isset($rrdtool_graph['upper-limit']) ) { + $max = $max > 1000 + ? number_format($max) + : number_format($max,2); + $min = $min = 0 + ? $min + : number_format($min,2); + $rrdtool_graph['vertical-label'] = "'$min - $max'"; + } + else { + $rrdtool_graph['vertical-label'] = ""; + } + */ + + //# the actual graph... + $series = "DEF:sum=$rrd_dir/$metricname.rrd:sum:AVERAGE "; + $series .= "AREA:sum#$default_metric_color:'$subtitle' "; + + if ($jobstart) { + $series .= "VRULE:$jobstart#$jobstart_color "; + } + + $rrdtool_graph['series'] = $series; + + return $rrdtool_graph; + +} + +?> Added: trunk/monitor-core/web/graph.d/network_report.php =================================================================== --- trunk/monitor-core/web/graph.d/network_report.php (rev 0) +++ trunk/monitor-core/web/graph.d/network_report.php 2008-03-13 03:33:57 UTC (rev 1051) @@ -0,0 +1,35 @@ +<?php + + +/* Pass in by reference! */ +function graph_network_report ( &$rrdtool_graph ) { + + global $context, + $hostname, + $mem_cached_color, + $mem_used_color, + $cpu_num_color, + $rrd_dir, + $size; + + $rrdtool_graph['height'] += $size == 'medium' ? 28 : 0 ; + $rrdtool_graph['title'] = 'Network'; + $rrdtool_graph['lower-limit'] = '0'; + $rrdtool_graph['vertical-label'] = 'Bytes/sec'; + $rrdtool_graph['extras'] = '--rigid --base 1024'; + + if ($context == 'host') + $rrdtool_graph['title'] .= " - $hostname"; + + $series = "DEF:'bytes_in'='${rrd_dir}/bytes_in.rrd':'sum':AVERAGE " + ."DEF:'bytes_out'='${rrd_dir}/bytes_out.rrd':'sum':AVERAGE " + ."LINE2:'bytes_in'#$mem_cached_color:'In' " + ."LINE2:'bytes_out'#$mem_used_color:'Out' "; + + $rrdtool_graph['series'] = $series; + + return $rrdtool_graph; + +} + +?> Added: trunk/monitor-core/web/graph.d/packet_report.php =================================================================== --- trunk/monitor-core/web/graph.d/packet_report.php (rev 0) +++ trunk/monitor-core/web/graph.d/packet_report.php 2008-03-13 03:33:57 UTC (rev 1051) @@ -0,0 +1,35 @@ +<?php + + +/* Pass in by reference! */ +function graph_packet_report ( &$rrdtool_graph ) { + + global $context, + $hostname, + $mem_cached_color, + $mem_used_color, + $cpu_num_color, + $rrd_dir, + $size; + + $rrdtool_graph['height'] += $size == 'medium' ? 28 : 0 ; + $rrdtool_graph['title'] = 'Packets'; + $rrdtool_graph['lower-limit'] = '0'; + $rrdtool_graph['vertical-label'] = 'Packets/sec'; + $rrdtool_graph['extras'] = '--rigid --base 1024'; + + if ($context == 'host') + $rrdtool_graph['title'] .= " - $hostname"; + + $series = "DEF:'bytes_in'='${rrd_dir}/pkts_in.rrd':'sum':AVERAGE " + ."DEF:'bytes_out'='${rrd_dir}/pkts_out.rrd':'sum':AVERAGE " + ."LINE2:'bytes_in'#$mem_cached_color:'In' " + ."LINE2:'bytes_out'#$mem_used_color:'Out' "; + + $rrdtool_graph['series'] = $series; + + return $rrdtool_graph; + +} + +?> Added: trunk/monitor-core/web/graph.d/sample_report.php =================================================================== --- trunk/monitor-core/web/graph.d/sample_report.php (rev 0) +++ trunk/monitor-core/web/graph.d/sample_report.php 2008-03-13 03:33:57 UTC (rev 1051) @@ -0,0 +1,142 @@ +<?php + +/* Sample report template */ + +/* Instructions for adding custom reports + +1) Reports should have a primary function named: "<yourtesthere>_report". This + fuction will be called from the graph.php script automatically. + +2) The *_report script should return an array that contains at least the variables + listed below. Several have been pre-populated, and may not need to be changed. + However, you will have to alter at least these: $series, $title, $vertical_label + +3) An array variable is passed to the function in order to make sure that certain + variables are available for use. This is PASSED BY REFERENCE and CAN BE CHANGED + by your report function. + + +NOTE: These are all actually keys in a hash, not specific variables by themselves. + +A full list of variables that will be used: + + + $series (string: holds the meat of the rrdgraph definition) + $title (string: title of the report) + $vertical_label (label for Y-Axis.) + + $start (String: Start time of the graph, can usually be left alone) + $end (String: End time of the graph, also can usually be left alone) + + $width (Strings: Width and height of *graph*, the actual image will be + $height slightly larger due to text elements and padding. These + are normally set automatically, depending on the graph size + chosen from the web UI) + + $upper-limit (Strings: Maximum and minimum Y-value for the graph. RRDTool + $lower-limit normally will auto-scale the Y min and max to fit the + data. You may override this by setting these variables + to specific limits. The default value is a null string, + which will force the auto-scale behavior) + + $color (ARRAY: Sets one or more chart colors. Usually used for setting + the background color of the chart. Valid array keys are + BACK, CANVAS, SADEA, SHADEB, FONT, FRAME and ARROW. Usually, + only BACK is set). + + $extras (Any other custom rrdtool commands can be added to this + this variable. For example, setting a different --base + value or use a --logarithmic scale) + + +For more information and specifics, see the man page for 'rrdgraph'. + + +*/ + + +function graph_sample_report ( &$rrdtool_graph ) { + +/* this is just the cpu_report (from revision r920) as an example, but with extra comments */ + + // pull in a number of global variables, many set in conf.php (such as colors and $rrd_dir), + // but other from elsewhere, such as get_context.php + + global $context, + $cpu_idle_color, + $cpu_nice_color, + $cpu_system_color, + $cpu_user_color, + $cpu_wio_color, + $hostname, + $rrd_dir, + $size; + // + // You *MUST* set at least the 'title', 'vertical-label', and 'series' variables. + // Otherwise, the graph *will not work*. + // + $rrdtool_graph['title'] = 'Sample CPU Report'; + // This will be turned into: + // "Clustername $TITLE last $timerange", so keep it short + $rrdtool_graph['vertical-label'] = 'Sample Percent'; + $rrdtool_graph['height'] += $size == 'medium' ? 28 : 0 ; // Fudge to account for number of lines in the chart legend + $rrdtool_graph['upper-limit'] = '100'; + $rrdtool_graph['lower-limit'] = '0'; + $rrdtool_graph['extras'] = '--rigid'; + + /* Here we actually build the chart series. This is moderately complicated + to show off what you can do. For a simpler example, look at network_report.php */ + if($context != "host" ) { + + /* If we are not in a host context, then we need to calculate the average */ + $series = + "DEF:'num_nodes'='${rrd_dir}/cpu_user.rrd':'num':AVERAGE " + . "DEF:'cpu_user'='${rrd_dir}/cpu_user.rrd':'sum':AVERAGE " + . "CDEF:'ccpu_user'=cpu_user,num_nodes,/ " + . "DEF:'cpu_nice'='${rrd_dir}/cpu_nice.rrd':'sum':AVERAGE " + . "CDEF:'ccpu_nice'=cpu_nice,num_nodes,/ " + . "DEF:'cpu_system'='${rrd_dir}/cpu_system.rrd':'sum':AVERAGE " + . "CDEF:'ccpu_system'=cpu_system,num_nodes,/ " + . "DEF:'cpu_idle'='${rrd_dir}/cpu_idle.rrd':'sum':AVERAGE " + . "CDEF:'ccpu_idle'=cpu_idle,num_nodes,/ " + . "AREA:'ccpu_user'#$cpu_user_color:'User CPU' " + . "STACK:'ccpu_nice'#$cpu_nice_color:'Nice CPU' " + . "STACK:'ccpu_system'#$cpu_system_color:'System CPU' "; + + if (file_exists("$rrd_dir/cpu_wio.rrd")) { + $series .= "DEF:'cpu_wio'='${rrd_dir}/cpu_wio.rrd':'sum':AVERAGE " + ."CDEF:'ccpu_wio'=cpu_wio,num_nodes,/ " + ."STACK:'ccpu_wio'#$cpu_wio_color:'WAIT CPU' "; + } + + $series .= "STACK:'ccpu_idle'#$cpu_idle_color:'Idle CPU' "; + } + // Context is not "host" + else { + + $rrdtool_graph['title'] .= " - $hostname"; + + $series ="DEF:'cpu_user'='${rrd_dir}/cpu_user.rrd':'sum':AVERAGE " + . "DEF:'cpu_nice'='${rrd_dir}/cpu_nice.rrd':'sum':AVERAGE " + . "DEF:'cpu_system'='${rrd_dir}/cpu_system.rrd':'sum':AVERAGE " + . "DEF:'cpu_idle'='${rrd_dir}/cpu_idle.rrd':'sum':AVERAGE " + . "AREA:'cpu_user'#$cpu_user_color:'User CPU' " + . "STACK:'cpu_nice'#$cpu_nice_color:'Nice CPU' " + . "STACK:'cpu_system'#$cpu_system_color:'System CPU' "; + + if (file_exists("$rrd_dir/cpu_wio.rrd")) { + $series .= "DEF:'cpu_wio'='${rrd_dir}/cpu_wio.rrd':'sum':AVERAGE "; + $series .= "STACK:'cpu_wio'#$cpu_wio_color:'WAIT CPU' "; + } + + $series .= "STACK:'cpu_idle'#$cpu_idle_color:'Idle CPU' "; + } + + + // We have everything now, so add it to the array, and go on our way. + $rrdtool_graph['series'] = $series; + + return $rrdtool_graph; +} + +?> Modified: trunk/monitor-core/web/graph.php =================================================================== --- trunk/monitor-core/web/graph.php 2008-03-07 12:30:56 UTC (rev 1050) +++ trunk/monitor-core/web/graph.php 2008-03-13 03:33:57 UTC (rev 1051) @@ -9,64 +9,52 @@ # Graph specific variables # ATD - No need for escapeshellcmd or rawurldecode on $size or $graph. Not used directly in rrdtool calls. -$size = isset($_GET["z"]) && in_array( $_GET[ 'z' ], $graph_sizes_keys ) ? - $_GET["z"] : NULL; +$size = isset($_GET["z"]) && in_array( $_GET[ 'z' ], $graph_sizes_keys ) + ? $_GET["z"] + : NULL; + # ATD - TODO, should encapsulate these custom graphs in some type of container, then this code could check list of defined containers for valid graph labels. -$graph = isset($_GET["g"]) && in_array( $_GET['g'], array( 'cpu_report', 'mem_report', 'load_report', 'network_report', 'packet_report' ) ) ? - $_GET["g"] : NULL; -$grid = isset($_GET["G"]) ? - escapeshellcmd( clean_string( rawurldecode( $_GET["G"] ) ) ) : NULL; -$self = isset($_GET["me"]) ? - escapeshellcmd( clean_string( rawurldecode($_GET["me"] ) ) ) : NULL; -$max = isset($_GET["x"]) ? - clean_number( rawurldecode($_GET["x"] ) ) : NULL; -$min = isset($_GET["n"]) ? - clean_number( rawurldecode($_GET["n"] ) ) : NULL; -$value = isset($_GET["v"]) ? - clean_number( rawurldecode( $_GET["v"] ) ) : NULL; -$load_color = isset($_GET["l"]) && is_valid_hex_color( rawurldecode( $_GET[ 'l' ] ) ) ? - escapeshellcmd( rawurldecode( $_GET["l"] ) ) : NULL; -$vlabel = isset($_GET["vl"]) ? - escapeshellcmd( clean_string( rawurldecode( $_GET["vl"] ) ) ) : NULL; -$sourcetime = isset($_GET["st"]) ? - clean_number( $_GET["st"] ) : NULL; -$summary = isset($_GET["su"]) ? 1 : 0; -$debug = isset( $_GET[ 'debug' ] ) ? 1 : 0; +$graph = isset($_GET["g"]) ? sanitize ( $_GET["g"] ) : NULL; +$grid = isset($_GET["G"]) ? sanitize ( $_GET["G"] ) : NULL; +$self = isset($_GET["me"]) ? sanitize ( $_GET["me"] ) : NULL; +$vlabel = isset($_GET["vl"]) ? sanitize ( $_GET["vl"] ) : NULL; +$value = isset($_GET["v"]) ? sanitize ( $_GET["v"] ) : NULL; -# RFM - Define these variables to avoid "Undefined variable" errors being -# reported in ssl_error_log. -$command = ""; -$extras = ""; -$upper_limit = ""; -$lower_limit = ""; -$background = ""; -$vertical_label = ""; +$max = isset($_GET["x"]) ? clean_number ( sanitize ($_GET["x"] ) ) : NULL; +$min = isset($_GET["n"]) ? clean_number ( sanitize ($_GET["n"] ) ) : NULL; +$sourcetime = isset($_GET["st"]) ? clean_number ( sanitize( $_GET["st"] ) ) : NULL; + +$load_color = isset($_GET["l"]) && is_valid_hex_color( rawurldecode( $_GET[ 'l' ] ) ) + ? sanitize ( $_GET["l"] ) : NULL; +$summary = isset( $_GET["su"] ) ? 1 : 0; +$debug = isset( $_GET['debug'] ) ? 1 : 0; +$command = ''; + # Assumes we have a $start variable (set in get_context.php). # $graph_sizes and $graph_sizes_keys defined in conf.php. Add custom sizes there. -if( in_array( $size, $graph_sizes_keys ) ) { - $height = $graph_sizes[ $size ][ 'height' ]; - $width = $graph_sizes[ $size ][ 'width' ]; - $fudge_0 = $graph_sizes[ $size ][ 'fudge_0' ]; - $fudge_1 = $graph_sizes[ $size ][ 'fudge_1' ]; - $fudge_2 = $graph_sizes[ $size ][ 'fudge_2' ]; -} else { - $height = $graph_sizes[ 'default' ][ 'height' ]; - $width = $graph_sizes[ 'default' ][ 'width' ]; - $fudge_0 = $graph_sizes[ 'default' ][ 'fudge_0' ]; - $fudge_1 = $graph_sizes[ 'default' ][ 'fudge_1' ]; - $fudge_2 = $graph_sizes[ 'default' ][ 'fudge_2' ]; -} +$size = in_array( $size, $graph_sizes_keys ) ? $size : 'default'; + +$height = $graph_sizes[ $size ][ 'height' ]; +$width = $graph_sizes[ $size ][ 'width' ]; +$fudge_0 = $graph_sizes[ $size ][ 'fudge_0' ]; +$fudge_1 = $graph_sizes[ $size ][ 'fudge_1' ]; +$fudge_2 = $graph_sizes[ $size ][ 'fudge_2' ]; + +# +# Since the $command variable is explicitly set to an empty string, above, do we really need +# this check anymore? --jb Jan 2008 +# # This security fix was brought to my attention by Peter Vreugdenhil <pet...@sc...> # Dont want users specifying their own malicious command via GET variables e.g. # http://ganglia.mrcluster.org/graph.php?graph=blob&command=whoami;cat%20/etc/passwd # -if($command) - { - exit(); - } +if($command) { + error_log("Command variable sent, exiting!"); + exit(); +} switch ($context) { @@ -86,225 +74,67 @@ exit; } -$fudge = 0; -if ($graph) /* Canned graph request */ - { - if($graph == "cpu_report") - { - $fudge = $fudge_1; - $style = "CPU"; +# Set some standard defaults that don't need to change much +$rrdtool_graph = array( + 'start' => $start, + 'end' => $end, + 'width' => $width, + 'height' => $height, +); - $upper_limit = "--upper-limit 100 --rigid"; - $lower_limit = "--lower-limit 0"; - $vertical_label = "--vertical-label Percent "; +//error_log("Graph [$graph] in context [$context]"); - if($context != "host" ) - { - /* If we are not in a host context, then we need to calculate the average */ - $series = - "DEF:'num_nodes'='${rrd_dir}/cpu_user.rrd':'num':AVERAGE " - ."DEF:'cpu_user'='${rrd_dir}/cpu_user.rrd':'sum':AVERAGE " - ."CDEF:'ccpu_user'=cpu_user,num_nodes,/ " - ."DEF:'cpu_nice'='${rrd_dir}/cpu_nice.rrd':'sum':AVERAGE " - ."CDEF:'ccpu_nice'=cpu_nice,num_nodes,/ " - ."DEF:'cpu_system'='${rrd_dir}/cpu_system.rrd':'sum':AVERAGE " - ."CDEF:'ccpu_system'=cpu_system,num_nodes,/ " - ."DEF:'cpu_idle'='${rrd_dir}/cpu_idle.rrd':'sum':AVERAGE " - ."CDEF:'ccpu_idle'=cpu_idle,num_nodes,/ " - ."AREA:'ccpu_user'#$cpu_user_color:'User CPU' " - ."STACK:'ccpu_nice'#$cpu_nice_color:'Nice CPU' " - ."STACK:'ccpu_system'#$cpu_system_color:'System CPU' "; - if (file_exists("$rrd_dir/cpu_wio.rrd")) { - $series .= "DEF:'cpu_wio'='${rrd_dir}/cpu_wio.rrd':'sum':AVERAGE " - ."CDEF:'ccpu_wio'=cpu_wio,num_nodes,/ " - ."STACK:'ccpu_wio'#$cpu_wio_color:'WAIT CPU' "; - } - $series .= "STACK:'ccpu_idle'#$cpu_idle_color:'Idle CPU' "; - } - else - { - $series ="DEF:'cpu_user'='${rrd_dir}/cpu_user.rrd':'sum':AVERAGE " - ."DEF:'cpu_nice'='${rrd_dir}/cpu_nice.rrd':'sum':AVERAGE " - ."DEF:'cpu_system'='${rrd_dir}/cpu_system.rrd':'sum':AVERAGE " - ."DEF:'cpu_idle'='${rrd_dir}/cpu_idle.rrd':'sum':AVERAGE " - ."AREA:'cpu_user'#$cpu_user_color:'User CPU' " - ."STACK:'cpu_nice'#$cpu_nice_color:'Nice CPU' " - ."STACK:'cpu_system'#$cpu_system_color:'System CPU' "; - if (file_exists("$rrd_dir/cpu_wio.rrd")) { - $series .= "DEF:'cpu_wio'='${rrd_dir}/cpu_wio.rrd':'sum':AVERAGE " - ."STACK:'cpu_wio'#$cpu_wio_color:'WAIT CPU' "; - } - $series .= "STACK:'cpu_idle'#$cpu_idle_color:'Idle CPU' "; - } - } - else if ($graph == "mem_report") - { - $fudge = $fudge_0; - $style = "Memory"; +/* If we have $graph, then a specific report was requested, such as "network_report" or + * "cpu_report. These graphs usually have some special logic and custom handling required, + * instead of simply plotting a single metric. If $graph is not set, then we are (hopefully), + * plotting a single metric, and will use the commands in the metric.php file. + * + * With modular graphs, we look for a "${graph}.php" file, and if it exists, we + * source it, and call a pre-defined function name. The current scheme for the function + * names is: 'graph_' + <name_of_report>. So a 'cpu_report' would call graph_cpu_report(), + * which would be found in the cpu_report.php file. + * + * These functions take the $rrdtool_graph array as an argument. This variable is + * PASSED BY REFERENCE, and will be modified by the various functions. Each key/value + * pair represents an option/argument, as passed to the rrdtool program. Thus, + * $rrdtool_graph['title'] will refer to the --title option for rrdtool, and pass the array + * value accordingly. + * + * There are two exceptions to: the 'extras' and 'series' keys in $rrdtool_graph. These are + * assigned to $extras and $series respectively, and are treated specially. $series will contain + * the various DEF, CDEF, RULE, LINE, AREA, etc statements that actually plot the charts. The + * rrdtool program requires that this come *last* in the argument string; we make sure that it + * is put in it's proper place. The $extras variable is used for other arguemnts that may not + * fit nicely for other reasons. Complicated requests for --color, or adding --ridgid, for example. + * It is simply a way for the graph writer to add an arbitrary options when calling rrdtool, and to + * forcibly override other settings, since rrdtool will use the last version of an option passed. + * (For example, if you call 'rrdtool' with two --title statements, the second one will be used.) + * + * See $graphdir/sample.php for more documentation, and details on the + * common variables passed and used. + */ - $lower_limit = "--lower-limit 0 --rigid"; - $extras = "--base 1024"; - $vertical_label = "--vertical-label Bytes"; +// No report requested, so use 'metric' +if (!$graph) { + $graph = 'metric'; +} - $series = "DEF:'mem_total'='${rrd_dir}/mem_total.rrd':'sum':AVERAGE " - ."CDEF:'bmem_total'=mem_total,1024,* " - ."DEF:'mem_shared'='${rrd_dir}/mem_shared.rrd':'sum':AVERAGE " - ."CDEF:'bmem_shared'=mem_shared,1024,* " - ."DEF:'mem_free'='${rrd_dir}/mem_free.rrd':'sum':AVERAGE " - ."CDEF:'bmem_free'=mem_free,1024,* " - ."DEF:'mem_cached'='${rrd_dir}/mem_cached.rrd':'sum':AVERAGE " - ."CDEF:'bmem_cached'=mem_cached,1024,* " - ."DEF:'mem_buffers'='${rrd_dir}/mem_buffers.rrd':'sum':AVERAGE " - ."CDEF:'bmem_buffers'=mem_buffers,1024,* " - ."CDEF:'bmem_used'='bmem_total','bmem_shared',-,'bmem_free',-,'bmem_cached',-,'bmem_buffers',- " - ."AREA:'bmem_used'#$mem_used_color:'Memory Used' " - ."STACK:'bmem_shared'#$mem_shared_color:'Memory Shared' " - ."STACK:'bmem_cached'#$mem_cached_color:'Memory Cached' " - ."STACK:'bmem_buffers'#$mem_buffered_color:'Memory Buffered' "; - if (file_exists("$rrd_dir/swap_total.rrd")) { - $series .= "DEF:'swap_total'='${rrd_dir}/swap_total.rrd':'sum':AVERAGE " - ."DEF:'swap_free'='${rrd_dir}/swap_free.rrd':'sum':AVERAGE " - ."CDEF:'bmem_swapped'='swap_total','swap_free',-,1024,* " - ."STACK:'bmem_swapped'#$mem_swapped_color:'Memory Swapped' "; - } - $series .= "LINE2:'bmem_total'#$cpu_num_color:'Total In-Core Memory' "; - } - else if ($graph == "load_report") - { - $fudge = $fudge_2; - $style = "Load"; +$graph_file = "$graphdir/$graph.php"; - $lower_limit = "--lower-limit 0 --rigid"; - $vertical_label = "--vertical-label 'Load/Procs'"; +if ( is_readable($graph_file) ) { + include_once($graph_file); + + $graph_function = "graph_${graph}"; + $graph_function($rrdtool_graph); // Pass by reference call, $rrdtool_graph modified inplace +} +else { + /* Bad stuff happened. */ + error_log("Tried to load graph file [$graph_file], but failed. Invalid graph, aborting."); + exit(); +} + - $series = "DEF:'load_one'='${rrd_dir}/load_one.rrd':'sum':AVERAGE " - ."DEF:'proc_run'='${rrd_dir}/proc_run.rrd':'sum':AVERAGE " - ."DEF:'cpu_num'='${rrd_dir}/cpu_num.rrd':'sum':AVERAGE "; - if( $context != "host" ) - { - $series .="DEF:'num_nodes'='${rrd_dir}/cpu_num.rrd':'num':AVERAGE "; - } - $series .="AREA:'load_one'#$load_one_color:'1-min Load' "; - if( $context != "host" ) - { - $series .= "LINE2:'num_nodes'#$num_nodes_color:'Nodes' "; - } - $series .="LINE2:'cpu_num'#$cpu_num_color:'CPUs' "; - $series .="LINE2:'proc_run'#$proc_run_color:'Running Processes' "; - } - else if ($graph == "network_report") - { - $fudge = $fudge_2; - $style = "Network"; - - $lower_limit = "--lower-limit 0 --rigid"; - $extras = "--base 1024"; - $vertical_label = "--vertical-label 'Bytes/sec'"; - - $series = "DEF:'bytes_in'='${rrd_dir}/bytes_in.rrd':'sum':AVERAGE " - ."DEF:'bytes_out'='${rrd_dir}/bytes_out.rrd':'sum':AVERAGE " - ."LINE2:'bytes_in'#$mem_cached_color:'In' " - ."LINE2:'bytes_out'#$mem_used_color:'Out' "; - } - else if ($graph == "packet_report") - { - $fudge = $fudge_2; - $style = "Packets"; - - $lower_limit = "--lower-limit 0 --rigid"; - $extras = "--base 1024"; - $vertical_label = "--vertical-label 'Packets/sec'"; - - $series = "DEF:'bytes_in'='${rrd_dir}/pkts_in.rrd':'sum':AVERAGE " - ."DEF:'bytes_out'='${rrd_dir}/pkts_out.rrd':'sum':AVERAGE " - ."LINE2:'bytes_in'#$mem_cached_color:'In' " - ."LINE2:'bytes_out'#$mem_used_color:'Out' "; - } - else - { - /* Got a strange value for $graph */ - exit(); - } - } -else - { - /* Custom graph */ - $style = ""; - - $subtitle = $metricname; - if ($context == "host") - { - if ($summary) - $prefix = $metricname; - else - $prefix = $hostname; - - $value = $value>1000 ? number_format($value) : number_format($value, 2); - - if ($range=="job") { - $hrs = intval( -$jobrange / 3600 ); - $subtitle = "$prefix last ${hrs}h (now $value)"; - } - else - $subtitle = "$prefix last $range (now $value)"; - } - - if (is_numeric($max)) - $upper_limit = "--upper-limit '$max' "; - if (is_numeric($min)) - $lower_limit ="--lower-limit '$min' "; - - if ($vlabel) - $vertical_label = "--vertical-label '$vlabel'"; - else if ($upper_limit or $lower_limit) { - if (!$min and !$max) { - $vertical_label = "--vertical-label ' '"; - } else { - $max = $max>100 ? number_format($max) : number_format($max, 2); - $min = $min>0 ? number_format($min,2) : $min; - - $vertical_label ="--vertical-label '$min - $max' "; - } - } - - $rrd_file = "$rrd_dir/$metricname.rrd"; - $series = "DEF:'sum'='$rrd_file':'sum':AVERAGE " - ."AREA:'sum'#$default_metric_color:'$subtitle' "; - if ($jobstart) - $series .= "VRULE:$jobstart#$jobstart_color "; - } - -# Set the graph title. -if($context == "meta") - { - $title = "$self $meta_designator $style last $range"; - } -else if ($context == "grid") - { - $title = "$grid $meta_designator $style last $range"; - } -else if ($context == "cluster") - { - $title = "$clustername $style last $range"; - } -else - { - if ($load_color) - $background = "--color BACK#'$load_color'"; - - if ($size == "small") - $title = $hostname; - else if ($style) - $title = "$hostname $style last $range"; - else if ($summary) - $title = "$hostname"; - else if ($metrictitle) - $title = $metrictitle; - else - $title = $metricname; - } - # Calculate time range. if ($sourcetime) { @@ -314,17 +144,47 @@ } # Fix from Phil Radden, but step is not always 15 anymore. if ($range=="month") - $end = floor($end / 672) * 672; + $rrdtool_graph['end'] = floor($rrdtool_graph['end'] / 672) * 672; -# -# Generate the rrdtool graph command. -# -$fudge += $height; -$command = RRDTOOL . " graph - --start $start --end $end ". - "--width $width --height $fudge $upper_limit $lower_limit ". - "--title '$title' $vertical_label $extras $background ". - $series; +# Tidy up the title a bit +if ($context != 'host') + $rrdtool_graph['title'] = "$clustername " . $rrdtool_graph['title'] . " last $range"; +//-------------------------------------------------------------------------------------- + +// We must have a 'series' value, or this is all for naught +if (!array_key_exists('series', $rrdtool_graph) || !strlen($rrdtool_graph['series']) ) { + error_log("\$series invalid for this graph request ".$_SERVER['PHP_SELF']); + exit(); +} + +$command = RRDTOOL . " graph - "; + +// The order of the other arguments isn't important, except for the +// 'extras' and 'series' values. These two require special handling. +// Otherwise, we just loop over them later, and tack $extras and +// $series onto the end of the command. +foreach ( array_keys ( $rrdtool_graph) as $key) { + + if ( preg_match('/extras|series/', $key )) + continue; + + $value = $rrdtool_graph[$key]; + + if (preg_match('/\W/', $value)) { + //more than alphanumerics in value, so quote it + $value = "'$value'"; + } + $command .= " --$key $value"; +} + +// And finish up with the two variables that need special handling. +// See above for how these are created +$command .= array_key_exists('extras', $rrdtool_graph) ? ' '.$rrdtool_graph['extras'].' ' : ''; +$command .= " $rrdtool_graph[series]"; + +//error_log("Final command: $command"); + # Did we generate a command? Run it. if($command) { @@ -344,4 +204,3 @@ } ?> - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2008-03-28 04:30:32
|
Revision: 1141 http://ganglia.svn.sourceforge.net/ganglia/?rev=1141&view=rev Author: hawson Date: 2008-03-27 21:30:37 -0700 (Thu, 27 Mar 2008) Log Message: ----------- Fix minor bugs with graph titles. Modified Paths: -------------- trunk/monitor-core/web/graph.d/cpu_report.php trunk/monitor-core/web/graph.d/load_report.php trunk/monitor-core/web/graph.d/mem_report.php trunk/monitor-core/web/graph.d/metric.php trunk/monitor-core/web/graph.d/network_report.php trunk/monitor-core/web/graph.d/packet_report.php trunk/monitor-core/web/graph.d/sample_report.php trunk/monitor-core/web/graph.php Modified: trunk/monitor-core/web/graph.d/cpu_report.php =================================================================== --- trunk/monitor-core/web/graph.d/cpu_report.php 2008-03-28 02:09:16 UTC (rev 1140) +++ trunk/monitor-core/web/graph.d/cpu_report.php 2008-03-28 04:30:37 UTC (rev 1141) @@ -50,8 +50,6 @@ // Context is not "host" else { - $rrdtool_graph['title'] .= " - $hostname"; - $series ="DEF:'cpu_user'='${rrd_dir}/cpu_user.rrd':'sum':AVERAGE " ."DEF:'cpu_nice'='${rrd_dir}/cpu_nice.rrd':'sum':AVERAGE " ."DEF:'cpu_system'='${rrd_dir}/cpu_system.rrd':'sum':AVERAGE " Modified: trunk/monitor-core/web/graph.d/load_report.php =================================================================== --- trunk/monitor-core/web/graph.d/load_report.php 2008-03-28 02:09:16 UTC (rev 1140) +++ trunk/monitor-core/web/graph.d/load_report.php 2008-03-28 04:30:37 UTC (rev 1141) @@ -24,10 +24,6 @@ ."DEF:'proc_run'='${rrd_dir}/proc_run.rrd':'sum':AVERAGE " ."DEF:'cpu_num'='${rrd_dir}/cpu_num.rrd':'sum':AVERAGE "; - if ($context == 'host') - $rrdtool_graph['title'] .= " - $hostname"; - - $series .="AREA:'load_one'#$load_one_color:'1-min Load' "; if( $context != 'host' ) { Modified: trunk/monitor-core/web/graph.d/mem_report.php =================================================================== --- trunk/monitor-core/web/graph.d/mem_report.php 2008-03-28 02:09:16 UTC (rev 1140) +++ trunk/monitor-core/web/graph.d/mem_report.php 2008-03-28 04:30:37 UTC (rev 1141) @@ -20,10 +20,6 @@ $rrdtool_graph['vertical-label'] = 'Bytes'; $rrdtool_graph['extras'] = '--rigid --base 1024'; - if ($context == 'host') - $rrdtool_graph['title'] .= " - $hostname"; - - $series = "DEF:'mem_total'='${rrd_dir}/mem_total.rrd':'sum':AVERAGE " ."CDEF:'bmem_total'=mem_total,1024,* " ."DEF:'mem_shared'='${rrd_dir}/mem_shared.rrd':'sum':AVERAGE " Modified: trunk/monitor-core/web/graph.d/metric.php =================================================================== --- trunk/monitor-core/web/graph.d/metric.php 2008-03-28 02:09:16 UTC (rev 1140) +++ trunk/monitor-core/web/graph.d/metric.php 2008-03-28 04:30:37 UTC (rev 1141) @@ -50,7 +50,7 @@ $hrs = intval (-$jobrange / 3600); $subtitle = "$prefix last ${hrs} (now $value)"; } else { - $subtitle = "$prefix last $range (now $value)"; + $subtitle = "$metricname (now $value)"; } break; Modified: trunk/monitor-core/web/graph.d/network_report.php =================================================================== --- trunk/monitor-core/web/graph.d/network_report.php 2008-03-28 02:09:16 UTC (rev 1140) +++ trunk/monitor-core/web/graph.d/network_report.php 2008-03-28 04:30:37 UTC (rev 1141) @@ -18,9 +18,6 @@ $rrdtool_graph['vertical-label'] = 'Bytes/sec'; $rrdtool_graph['extras'] = '--rigid --base 1024'; - if ($context == 'host') - $rrdtool_graph['title'] .= " - $hostname"; - $series = "DEF:'bytes_in'='${rrd_dir}/bytes_in.rrd':'sum':AVERAGE " ."DEF:'bytes_out'='${rrd_dir}/bytes_out.rrd':'sum':AVERAGE " ."LINE2:'bytes_in'#$mem_cached_color:'In' " Modified: trunk/monitor-core/web/graph.d/packet_report.php =================================================================== --- trunk/monitor-core/web/graph.d/packet_report.php 2008-03-28 02:09:16 UTC (rev 1140) +++ trunk/monitor-core/web/graph.d/packet_report.php 2008-03-28 04:30:37 UTC (rev 1141) @@ -18,9 +18,6 @@ $rrdtool_graph['vertical-label'] = 'Packets/sec'; $rrdtool_graph['extras'] = '--rigid --base 1024'; - if ($context == 'host') - $rrdtool_graph['title'] .= " - $hostname"; - $series = "DEF:'bytes_in'='${rrd_dir}/pkts_in.rrd':'sum':AVERAGE " ."DEF:'bytes_out'='${rrd_dir}/pkts_out.rrd':'sum':AVERAGE " ."LINE2:'bytes_in'#$mem_cached_color:'In' " Modified: trunk/monitor-core/web/graph.d/sample_report.php =================================================================== --- trunk/monitor-core/web/graph.d/sample_report.php 2008-03-28 02:09:16 UTC (rev 1140) +++ trunk/monitor-core/web/graph.d/sample_report.php 2008-03-28 04:30:37 UTC (rev 1141) @@ -114,8 +114,6 @@ // Context is not "host" else { - $rrdtool_graph['title'] .= " - $hostname"; - $series ="DEF:'cpu_user'='${rrd_dir}/cpu_user.rrd':'sum':AVERAGE " . "DEF:'cpu_nice'='${rrd_dir}/cpu_nice.rrd':'sum':AVERAGE " . "DEF:'cpu_system'='${rrd_dir}/cpu_system.rrd':'sum':AVERAGE " Modified: trunk/monitor-core/web/graph.php =================================================================== --- trunk/monitor-core/web/graph.php 2008-03-28 02:09:16 UTC (rev 1140) +++ trunk/monitor-core/web/graph.php 2008-03-28 04:30:37 UTC (rev 1141) @@ -147,9 +147,26 @@ $rrdtool_graph['end'] = floor($rrdtool_graph['end'] / 672) * 672; # Tidy up the title a bit -if ($context != 'host') - $rrdtool_graph['title'] = "$clustername " . $rrdtool_graph['title'] . " last $range"; +switch ($context) { + case 'meta': + $title = "$self Grid"; + break; + case 'cluster': + $title = $clustername ; + break; + + case 'host': + $title = isset($graph) ? $hostname : '' ; + break; + + default: + $title = $clustername; + break; +} + +$rrdtool_graph['title'] = $title . ' ' . $rrdtool_graph['title'] . " last $range"; + //-------------------------------------------------------------------------------------- // We must have a 'series' value, or this is all for naught This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ber...@us...> - 2008-04-02 23:18:18
|
Revision: 1200 http://ganglia.svn.sourceforge.net/ganglia/?rev=1200&view=rev Author: bernardli Date: 2008-04-02 16:18:23 -0700 (Wed, 02 Apr 2008) Log Message: ----------- Clean up redirection page to remote server -- no need to display logo & ganglia_form Modified Paths: -------------- trunk/monitor-core/web/header.php trunk/monitor-core/web/templates/default/header.tpl Modified: trunk/monitor-core/web/header.php =================================================================== --- trunk/monitor-core/web/header.php 2008-04-02 07:33:34 UTC (rev 1199) +++ trunk/monitor-core/web/header.php 2008-04-02 23:18:23 UTC (rev 1200) @@ -20,6 +20,11 @@ $tpl = new TemplatePower( template("$header.tpl") ); $tpl->prepare(); +# Skip the "ganglia_header" block (Logo + "Grid Report for ...") when redirecting +if ( !strstr($clustername, "http://") && $header == "header" ) { + $tpl->newBlock("ganglia_header"); +} + # # sacerdoti: beginning of Grid tree state handling # Modified: trunk/monitor-core/web/templates/default/header.tpl =================================================================== --- trunk/monitor-core/web/templates/default/header.tpl 2008-04-02 07:33:34 UTC (rev 1199) +++ trunk/monitor-core/web/templates/default/header.tpl 2008-04-02 23:18:23 UTC (rev 1200) @@ -8,6 +8,7 @@ </HEAD> <BODY BGCOLOR="#FFFFFF"> +<!-- START BLOCK : ganglia_header --> <FORM ACTION="{page}" METHOD="GET" NAME="ganglia_form"> <TABLE WIDTH="100%"> <TR> @@ -49,3 +50,4 @@ {node_menu} </FONT> <HR SIZE="1" NOSHADE> +<!-- END BLOCK : ganglia_header --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ber...@us...> - 2008-04-10 23:45:20
|
Revision: 1225 http://ganglia.svn.sourceforge.net/ganglia/?rev=1225&view=rev Author: bernardli Date: 2008-04-10 16:45:26 -0700 (Thu, 10 Apr 2008) Log Message: ----------- Remaining patches to get gridwalk working again - run clean_string() on individual gs elements after array has been exploded - setcookie also when gridstack is different from the one in cookie Modified Paths: -------------- trunk/monitor-core/web/get_context.php trunk/monitor-core/web/header.php Modified: trunk/monitor-core/web/get_context.php =================================================================== --- trunk/monitor-core/web/get_context.php 2008-04-10 07:14:07 UTC (rev 1224) +++ trunk/monitor-core/web/get_context.php 2008-04-10 23:45:26 UTC (rev 1225) @@ -47,10 +47,15 @@ escapeshellcmd($_GET["z"]) : NULL; # A stack of grid parents. Prefer a GET variable, default to cookie. if (isset($_GET["gs"]) and $_GET["gs"]) - $gridstack = explode(">", clean_string( rawurldecode($_GET["gs"] ) ) ); + $gridstack = explode( ">", rawurldecode( $_GET["gs"] ) ); else if ( isset($_COOKIE['gs']) and $_COOKIE['gs']) - $gridstack = explode(">", clean_string( $_COOKIE["gs"] ) ); + $gridstack = explode( ">", $_COOKIE["gs"] ); +if (isset($gridstack) and $gridstack) { + foreach( $gridstack as $key=>$value ) + $gridstack[ $key ] = clean_string( $value ); +} + # Assume we are the first grid visited in the tree if there are no CGI variables, # or gridstack is not well formed. Gridstack always has at least one element. if ( !count($_GET) or !isset($gridstack) or !strstr($gridstack[0], "http://")) Modified: trunk/monitor-core/web/header.php =================================================================== --- trunk/monitor-core/web/header.php 2008-04-10 07:14:07 UTC (rev 1224) +++ trunk/monitor-core/web/header.php 2008-04-10 23:45:26 UTC (rev 1225) @@ -60,8 +60,7 @@ { # Use cookie so we dont have to pass gridstack around within this site. # Cookie values are automatically urlencoded. Expires in a day. - $gscookie = $_COOKIE["gs"]; - if (! isset($gscookie)) + if ( !isset($_COOKIE["gs"]) or $_COOKIE["gs"] != $gridstack_str ) setcookie("gs", $gridstack_str, time() + 86400); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2008-04-16 06:31:11
|
Revision: 1248 http://ganglia.svn.sourceforge.net/ganglia/?rev=1248&view=rev Author: carenas Date: 2008-04-15 23:31:01 -0700 (Tue, 15 Apr 2008) Log Message: ----------- web: report cluster status in node view otherwise the last heartbeat received message will be frozen in time with no explanation Modified Paths: -------------- trunk/monitor-core/web/show_node.php trunk/monitor-core/web/templates/default/show_node.tpl Modified: trunk/monitor-core/web/show_node.php =================================================================== --- trunk/monitor-core/web/show_node.php 2008-04-15 23:13:25 UTC (rev 1247) +++ trunk/monitor-core/web/show_node.php 2008-04-16 06:31:01 UTC (rev 1248) @@ -71,8 +71,8 @@ $age = $clustertime - $heartbeat; $s = ($age>1) ? "s" : ""; $tpl->assign("age","$age second$s"); -if (!$up) { - $tpl->assign("down","<br><b>This node is down.</b>"); +if ((!$up) && ($cluster['HOSTS_UP'] == 0)) { + $tpl->assign("message","<b>This cluster is down.</b>"); } # The these hardware units should be more flexible. Modified: trunk/monitor-core/web/templates/default/show_node.tpl =================================================================== --- trunk/monitor-core/web/templates/default/show_node.tpl 2008-04-15 23:13:25 UTC (rev 1247) +++ trunk/monitor-core/web/templates/default/show_node.tpl 2008-04-16 06:31:01 UTC (rev 1248) @@ -15,8 +15,9 @@ <i>{ip}</i><br> <em>Location:</em> {location}<p> - Last heartbeat received {age} ago.{down}<br> - Uptime {uptime} + Last heartbeat received {age} ago.<br> + Uptime {uptime}<br> + {message} </td> <td align=right valign=top> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ca...@us...> - 2008-05-06 08:01:09
|
Revision: 1325 http://ganglia.svn.sourceforge.net/ganglia/?rev=1325&view=rev Author: carenas Date: 2008-05-06 01:01:15 -0700 (Tue, 06 May 2008) Log Message: ----------- web: gmetric metrics are no longer to be treated specially since the XDR packet refactoring there is no longer a SOURCE="gmetric" that would identify them, and are user generated metrics like the ones that will be available from modules Modified Paths: -------------- trunk/monitor-core/web/host_view.php trunk/monitor-core/web/templates/default/host_view.tpl Removed Paths: ------------- trunk/monitor-core/web/host_gmetrics.php trunk/monitor-core/web/templates/default/host_gmetrics.tpl Deleted: trunk/monitor-core/web/host_gmetrics.php =================================================================== --- trunk/monitor-core/web/host_gmetrics.php 2008-05-06 07:31:30 UTC (rev 1324) +++ trunk/monitor-core/web/host_gmetrics.php 2008-05-06 08:01:15 UTC (rev 1325) @@ -1,84 +0,0 @@ -<?php -/* $Id$ */ - -# ATD - functions.php needs to be first, as it defines clean_string() -include_once "functions.php"; -# ATD - these must be defined before including ganglia.php -$clustername = escapeshellcmd( clean_string( rawurldecode( $_GET["c"] ) ) ); -$hostname = escapeshellcmd( clean_string( rawurldecode($_GET["h"] ) ) ); -$context = "host"; -# ATD - the order of the rest of these doesn't matter AFAIK. -include_once "conf.php"; -include_once "ganglia.php"; -include_once "get_ganglia.php"; -include_once "./class.TemplatePower.inc.php"; - -# RFM - These lines prevent "undefined variable" error messages in -# the ssl_error_log file. -if(!isset($always_timestamp)) $always_timestamp = array(); - -# RFM - Quoted the array indices to suppress error messages in -# ssl_error_log file. - -function byTN($a, $b) -{ - $aTN = $a['TN']; - $bTN = $b['TN']; - if ($aTN == $bTN) - return 0; - return ($aTN < $bTN) ? -1 : 1; -} - -$tpl = new TemplatePower( template("host_gmetrics.tpl") ); -$tpl->prepare(); - -$tpl->assign("cluster", $clustername); -$tpl->assign("host", $hostname); -$tpl->assign("node_image", node_image($metrics)); - -if($hosts_up) - $tpl->assign("node_msg", "This host is up and running."); -else - $tpl->assign("node_msg", "This host is down."); - -$cluster_url=rawurlencode($clustername); -$tpl->assign("cluster_url", $cluster_url); - -# For the node view link. -$tpl->assign("host_view","./?c=$cluster_url&h=$hostname"); - -foreach ($metrics as $name => $v) - { - # Show only user defined metrics. - if ($v['SOURCE'] == "gmetric") { - $g_metrics[$name] = $v; - } - } - -# Show gmetrics -if (isset($g_metrics) and is_array($g_metrics)) - { - uasort($g_metrics, "byTN"); - foreach ($g_metrics as $name => $v ) - { - # echo "Adding gmetric name $name<br>"; - $tpl->newBlock("g_metric_info"); - $tpl->assign("name", $name); - $tpl->assign("tn", $v['TN']); - $tpl->assign("tmax", $v['TMAX']); - $tpl->assign("dmax", $v['DMAX']); - # RFM - Added isset() call to avoid "undefined index" errors in - # the ssl_error_log file. - if( $v['TYPE']=="timestamp" or (isset($always_timestamp[$name]) and $always_timestamp[$name])) - { - $tpl->assign("value", date("r", $v['VAL'])); - } - else - { - $tpl->assign("value", $v['VAL'] . " " . $v['UNITS']); - } - } - } - -$tpl->printToScreen(); -?> Modified: trunk/monitor-core/web/host_view.php =================================================================== --- trunk/monitor-core/web/host_view.php 2008-05-06 07:31:30 UTC (rev 1324) +++ trunk/monitor-core/web/host_view.php 2008-05-06 08:01:15 UTC (rev 1325) @@ -38,8 +38,7 @@ if ($v['TYPE'] == "string" or $v['TYPE']=="timestamp" or (isset($always_timestamp[$name]) and $always_timestamp[$name])) { - # Long gmetric name/values will disrupt the display here. - if ($v['SOURCE'] == "gmond") $s_metrics[$name] = $v; + $s_metrics[$name] = $v; } elseif ($v['SLOPE'] == "zero" or (isset($always_constant[$name]) and $always_constant[$name])) Deleted: trunk/monitor-core/web/templates/default/host_gmetrics.tpl =================================================================== --- trunk/monitor-core/web/templates/default/host_gmetrics.tpl 2008-05-06 07:31:30 UTC (rev 1324) +++ trunk/monitor-core/web/templates/default/host_gmetrics.tpl 2008-05-06 08:01:15 UTC (rev 1325) @@ -1,54 +0,0 @@ -<HTML> -<HEAD> - <TITLE>{host} user-defined metrics</TITLE> - <META http-equiv="Content-type" content="text/html; charset=utf-8"> - <META http-equiv="refresh" content="300"> - <LINK rel="stylesheet" href="./styles.css" type="text/css" -</HEAD> -<BODY> - -<TABLE BORDER="0" WIDTH="100%"> -<TR> - <TD COLSPAN="2" BGCOLOR="#EEEEEE" ALIGN="CENTER"> - <FONT SIZE="+2">{cluster} > {host} </FONT> - </TD> -</TR> - -<TR> - <TD ALIGN="LEFT" VALIGN="TOP" WIDTH="70%"> - -<IMG SRC="{node_image}" HEIGHT="60" WIDTH="30" ALT="{host}" BORDER="0"> -{node_msg} -<BR> -<BR> - </TD> - <TD ALIGN=left> -<a href={host_view}>Back to Host View</a> - </TD> -</TR> - -<TABLE BORDER="0" WIDTH="100%"> -<TR> - <TD COLSPAN=5 CLASS=title>User Defined Metrics (gmetrics)</TD> -</TR> -<TR> -<TH>TN</TH> -<TH>TMAX</TH> -<TH>DMAX</TH> -<TH>NAME</TH> -<TH>VALUE</TH> - -<!-- START BLOCK : g_metric_info --> -<TR> - <TD CLASS=footer>{tn}</TD><TD CLASS=footer>{tmax}</TD><TD CLASS=footer>{dmax}</TD> - <TD>{name}</TD><TD>{value}</TD> -</TR> -<!-- END BLOCK : g_metric_info --> -</TABLE> - - </TD> -</TR> -</TABLE> - -</BODY> -</HTML> Modified: trunk/monitor-core/web/templates/default/host_view.tpl =================================================================== --- trunk/monitor-core/web/templates/default/host_view.tpl 2008-05-06 07:31:30 UTC (rev 1324) +++ trunk/monitor-core/web/templates/default/host_view.tpl 2008-05-06 08:01:15 UTC (rev 1325) @@ -52,14 +52,6 @@ <TD CLASS=footer WIDTH=30%>{name}</TD><TD>{value}</TD> </TR> <!-- END BLOCK : const_metric_info --> - -<TR><TD> </TD></TR> - -<TR> - <TD COLSPAN=2 CLASS=title> - <a href="host_gmetrics.php?c={cluster_url}&h={host}">Gmetrics</a> - </TD> -</TR> </TABLE> <HR> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ber...@us...> - 2008-05-07 01:26:54
|
Revision: 1328 http://ganglia.svn.sourceforge.net/ganglia/?rev=1328&view=rev Author: bernardli Date: 2008-05-06 18:26:22 -0700 (Tue, 06 May 2008) Log Message: ----------- fwd and back grid links carry over metric options, eg. Last [hour|day|week] Modified Paths: -------------- trunk/monitor-core/web/header.php trunk/monitor-core/web/meta_view.php Modified: trunk/monitor-core/web/header.php =================================================================== --- trunk/monitor-core/web/header.php 2008-05-07 01:05:03 UTC (rev 1327) +++ trunk/monitor-core/web/header.php 2008-05-07 01:26:22 UTC (rev 1328) @@ -122,7 +122,7 @@ if ($parentgrid) { - $node_menu .= "<B><A HREF=\"$parentlink?gw=back&gs=$gridstack_url\">". + $node_menu .= "<B><A HREF=\"$parentlink?gw=back&gs=$gridstack_url&$get_metric_string\">". "$parentgrid $meta_designator</A></B> "; $node_menu .= "<B>></B>\n"; } Modified: trunk/monitor-core/web/meta_view.php =================================================================== --- trunk/monitor-core/web/meta_view.php 2008-05-07 01:05:03 UTC (rev 1327) +++ trunk/monitor-core/web/meta_view.php 2008-05-07 01:26:22 UTC (rev 1328) @@ -85,7 +85,7 @@ $name = "$source $meta_designator"; $graph_url = "G=$sourceurl&$get_metric_string&st=$localtime"; $authority = $grid[$source]['AUTHORITY']; - $url = "$authority?gw=fwd&gs=$gridstack_url"; + $url = "$authority?gw=fwd&gs=$gridstack_url&$get_metric_string"; } $alt_url = "<a href=\"./?t=yes&$get_metric_string\">(tree view)</a>"; $class = "grid"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ber...@us...> - 2008-06-23 23:46:18
|
Revision: 1448 http://ganglia.svn.sourceforge.net/ganglia/?rev=1448&view=rev Author: bernardli Date: 2008-06-23 16:46:27 -0700 (Mon, 23 Jun 2008) Log Message: ----------- [web] Revert graphs' title and subtitle behaviour back to pre-modular graph.php patch (3.0.x) with one enhancement: the subtitle "$metricname last $range (now $now)" is no longer clobbered and is split into two lines (tested with rrdtool 1.2.23) Modified Paths: -------------- trunk/monitor-core/web/graph.d/cpu_report.php trunk/monitor-core/web/graph.d/load_report.php trunk/monitor-core/web/graph.d/mem_report.php trunk/monitor-core/web/graph.d/metric.php trunk/monitor-core/web/graph.d/network_report.php trunk/monitor-core/web/graph.d/packet_report.php trunk/monitor-core/web/graph.d/sample_report.php trunk/monitor-core/web/graph.php Modified: trunk/monitor-core/web/graph.d/cpu_report.php =================================================================== --- trunk/monitor-core/web/graph.d/cpu_report.php 2008-06-23 18:01:55 UTC (rev 1447) +++ trunk/monitor-core/web/graph.d/cpu_report.php 2008-06-23 23:46:27 UTC (rev 1448) @@ -11,11 +11,18 @@ $cpu_user_color, $cpu_wio_color, $hostname, + $range, $rrd_dir, $size; $rrdtool_graph['height'] += $size == 'medium' ? 14 : 0 ; - $rrdtool_graph['title'] = 'CPU'; + $title = 'CPU'; + if ($context != 'host') { + $rrdtool_graph['title'] = $title; + } else { + $rrdtool_graph['title'] = "$hostname $title last $range"; + + } $rrdtool_graph['upper-limit'] = '100'; $rrdtool_graph['lower-limit'] = '0'; $rrdtool_graph['vertical-label'] = 'Percent'; Modified: trunk/monitor-core/web/graph.d/load_report.php =================================================================== --- trunk/monitor-core/web/graph.d/load_report.php 2008-06-23 18:01:55 UTC (rev 1447) +++ trunk/monitor-core/web/graph.d/load_report.php 2008-06-23 23:46:27 UTC (rev 1448) @@ -10,12 +10,18 @@ $hostname, $load_one_color, $num_nodes_color, - $proc_run_color, + $proc_run_color, + $range, $rrd_dir, $size; $rrdtool_graph['height'] += $size == 'medium' ? 28 : 0 ; - $rrdtool_graph['title'] = 'Load'; + $title = 'Load'; + if ($context != 'host') { + $rrdtool_graph['title'] = $title; + } else { + $rrdtool_graph['title'] = "$hostname $title last $range"; + } $rrdtool_graph['lower-limit'] = '0'; $rrdtool_graph['vertical-label'] = 'Load/Procs'; $rrdtool_graph['extras'] = '--rigid'; Modified: trunk/monitor-core/web/graph.d/mem_report.php =================================================================== --- trunk/monitor-core/web/graph.d/mem_report.php 2008-06-23 18:01:55 UTC (rev 1447) +++ trunk/monitor-core/web/graph.d/mem_report.php 2008-06-23 23:46:27 UTC (rev 1448) @@ -12,10 +12,16 @@ $mem_swapped_color, $mem_used_color, $cpu_num_color, + $range, $rrd_dir, $size; - - $rrdtool_graph['title'] = 'Memory'; + + $title = 'Memory'; + if ($context != 'host') { + $rrdtool_graph['title'] = $title; + } else { + $rrdtool_graph['title'] = "$hostname $title last $range"; + } $rrdtool_graph['lower-limit'] = '0'; $rrdtool_graph['vertical-label'] = 'Bytes'; $rrdtool_graph['extras'] = '--rigid --base 1024'; Modified: trunk/monitor-core/web/graph.d/metric.php =================================================================== --- trunk/monitor-core/web/graph.d/metric.php 2008-06-23 18:01:55 UTC (rev 1447) +++ trunk/monitor-core/web/graph.d/metric.php 2008-06-23 23:46:27 UTC (rev 1448) @@ -50,7 +50,12 @@ $hrs = intval (-$jobrange / 3600); $subtitle = "$prefix last ${hrs} (now $value)"; } else { - $subtitle = "$metricname (now $value)"; + if ($summary) { + $subtitle_one = "$metricname last $range"; + } else { + $subtitle_one = "$hostname last $range"; + } + $subtitle_two = " (now $value)"; } break; @@ -117,7 +122,8 @@ //# the actual graph... $series = "DEF:'sum'='$rrd_dir/$metricname.rrd:sum':AVERAGE "; - $series .= "AREA:'sum'#$default_metric_color:'$subtitle' "; + $series .= "AREA:'sum'#$default_metric_color:'$subtitle_one'"; + $series .= ":STACK: COMMENT:'$subtitle_two'"; if ($jobstart) { $series .= "VRULE:$jobstart#$jobstart_color "; Modified: trunk/monitor-core/web/graph.d/network_report.php =================================================================== --- trunk/monitor-core/web/graph.d/network_report.php 2008-06-23 18:01:55 UTC (rev 1447) +++ trunk/monitor-core/web/graph.d/network_report.php 2008-06-23 23:46:27 UTC (rev 1448) @@ -9,11 +9,17 @@ $mem_cached_color, $mem_used_color, $cpu_num_color, + $range, $rrd_dir, $size; - + + $title = 'Network'; $rrdtool_graph['height'] += $size == 'medium' ? 28 : 0 ; - $rrdtool_graph['title'] = 'Network'; + if ($context != 'host') { + $rrdtool_graph['title'] = $title; + } else { + $rrdtool_graph['title'] = "$hostname Network last $range"; + } $rrdtool_graph['lower-limit'] = '0'; $rrdtool_graph['vertical-label'] = 'Bytes/sec'; $rrdtool_graph['extras'] = '--rigid --base 1024'; Modified: trunk/monitor-core/web/graph.d/packet_report.php =================================================================== --- trunk/monitor-core/web/graph.d/packet_report.php 2008-06-23 18:01:55 UTC (rev 1447) +++ trunk/monitor-core/web/graph.d/packet_report.php 2008-06-23 23:46:27 UTC (rev 1448) @@ -9,11 +9,17 @@ $mem_cached_color, $mem_used_color, $cpu_num_color, + $range, $rrd_dir, $size; - + + $title = 'Packets'; $rrdtool_graph['height'] += $size == 'medium' ? 28 : 0 ; - $rrdtool_graph['title'] = 'Packets'; + if ($context != 'host') { + $rrdtool_graph['title'] = $title; + } else { + $rrdtool_graph['title'] = "$hostname $title last $range"; + } $rrdtool_graph['lower-limit'] = '0'; $rrdtool_graph['vertical-label'] = 'Packets/sec'; $rrdtool_graph['extras'] = '--rigid --base 1024'; Modified: trunk/monitor-core/web/graph.d/sample_report.php =================================================================== --- trunk/monitor-core/web/graph.d/sample_report.php 2008-06-23 18:01:55 UTC (rev 1447) +++ trunk/monitor-core/web/graph.d/sample_report.php 2008-06-23 23:46:27 UTC (rev 1448) @@ -69,15 +69,21 @@ $cpu_user_color, $cpu_wio_color, $hostname, + $range, $rrd_dir, $size; // // You *MUST* set at least the 'title', 'vertical-label', and 'series' variables. // Otherwise, the graph *will not work*. // - $rrdtool_graph['title'] = 'Sample CPU Report'; + $title = 'Sample CPU Report'; + if ($context != 'host') { + $rrdtool_graph['title'] = $title; // This will be turned into: // "Clustername $TITLE last $timerange", so keep it short + } else { + $rrdtool_graph['title'] = "$hostname $title last $range"; + } $rrdtool_graph['vertical-label'] = 'Sample Percent'; $rrdtool_graph['height'] += $size == 'medium' ? 28 : 0 ; // Fudge to account for number of lines in the chart legend $rrdtool_graph['upper-limit'] = '100'; Modified: trunk/monitor-core/web/graph.php =================================================================== --- trunk/monitor-core/web/graph.php 2008-06-23 18:01:55 UTC (rev 1447) +++ trunk/monitor-core/web/graph.php 2008-06-23 23:46:27 UTC (rev 1448) @@ -163,7 +163,7 @@ case 'host': if (!$summary) - $title = isset($graph) ? $hostname : null ; + $title = null ; break; default: @@ -171,7 +171,9 @@ break; } -$rrdtool_graph['title'] = $rrdtool_graph['title'] . " last $range"; +if ($context != 'host') { + $rrdtool_graph['title'] = $rrdtool_graph['title'] . " last $range"; +} if (isset($title)) { $rrdtool_graph['title'] = "$title " . $rrdtool_graph['title']; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2008-06-24 18:39:17
|
Revision: 1460 http://ganglia.svn.sourceforge.net/ganglia/?rev=1460&view=rev Author: hawson Date: 2008-06-24 11:38:16 -0700 (Tue, 24 Jun 2008) Log Message: ----------- Add config setting $use_fqdn_hostname. Defaults to FALSE. Setting to TRUE will display full FQDN hostnames--IF THEY ARE PRESENT--in the charts. If a host does not report itself using an FQDN, the FQDN is not displayed. Modified Paths: -------------- trunk/monitor-core/web/conf.php.in trunk/monitor-core/web/functions.php trunk/monitor-core/web/graph.d/cpu_report.php trunk/monitor-core/web/graph.d/load_report.php trunk/monitor-core/web/graph.d/mem_report.php trunk/monitor-core/web/graph.d/metric.php trunk/monitor-core/web/graph.d/network_report.php trunk/monitor-core/web/graph.d/packet_report.php trunk/monitor-core/web/graph.d/sample_report.php trunk/monitor-core/web/graph.php Modified: trunk/monitor-core/web/conf.php.in =================================================================== --- trunk/monitor-core/web/conf.php.in 2008-06-24 18:31:20 UTC (rev 1459) +++ trunk/monitor-core/web/conf.php.in 2008-06-24 18:38:16 UTC (rev 1460) @@ -125,6 +125,11 @@ $default_metric = "load_one"; # +# use FQDN hostnames in graphs (to help with long hostnames in small charts) +# +$use_fqdn_hostname = false; + +# # Optional summary graphs # #$optional_graphs = array('packet'); Modified: trunk/monitor-core/web/functions.php =================================================================== --- trunk/monitor-core/web/functions.php 2008-06-24 18:31:20 UTC (rev 1459) +++ trunk/monitor-core/web/functions.php 2008-06-24 18:38:16 UTC (rev 1460) @@ -444,4 +444,16 @@ return $return_value; } + +#------------------------------------------------------------------------------- +# Return a shortened version of an FQDN +function shortenFQDN( $hostname ) { + $postition = strpos($hostname, '.'); + if ( FALSE === $postition ) { + return $hostname; + } else { + return substr( $hostname , 0, $postition ); + } +} + ?> Modified: trunk/monitor-core/web/graph.d/cpu_report.php =================================================================== --- trunk/monitor-core/web/graph.d/cpu_report.php 2008-06-24 18:31:20 UTC (rev 1459) +++ trunk/monitor-core/web/graph.d/cpu_report.php 2008-06-24 18:38:16 UTC (rev 1460) @@ -13,14 +13,19 @@ $hostname, $range, $rrd_dir, - $size; + $size, + $use_fqdn_hostname; + if (!$use_fqdn_hostname) { + $hostname = shortenFQDN($hostname); + } + $rrdtool_graph['height'] += $size == 'medium' ? 14 : 0 ; $title = 'CPU'; if ($context != 'host') { $rrdtool_graph['title'] = $title; } else { - $rrdtool_graph['title'] = "$hostname $title last $range"; + $rrdtool_graph['title'] = "$title last $range"; } $rrdtool_graph['upper-limit'] = '100'; Modified: trunk/monitor-core/web/graph.d/load_report.php =================================================================== --- trunk/monitor-core/web/graph.d/load_report.php 2008-06-24 18:31:20 UTC (rev 1459) +++ trunk/monitor-core/web/graph.d/load_report.php 2008-06-24 18:38:16 UTC (rev 1460) @@ -13,14 +13,19 @@ $proc_run_color, $range, $rrd_dir, - $size; + $size, + $use_fqdn_hostname; + if (!$use_fqdn_hostname) { + $hostname = shortenFQDN($hostname); + } + $rrdtool_graph['height'] += $size == 'medium' ? 28 : 0 ; $title = 'Load'; if ($context != 'host') { $rrdtool_graph['title'] = $title; } else { - $rrdtool_graph['title'] = "$hostname $title last $range"; + $rrdtool_graph['title'] = "$title last $range"; } $rrdtool_graph['lower-limit'] = '0'; $rrdtool_graph['vertical-label'] = 'Load/Procs'; Modified: trunk/monitor-core/web/graph.d/mem_report.php =================================================================== --- trunk/monitor-core/web/graph.d/mem_report.php 2008-06-24 18:31:20 UTC (rev 1459) +++ trunk/monitor-core/web/graph.d/mem_report.php 2008-06-24 18:38:16 UTC (rev 1460) @@ -14,13 +14,18 @@ $cpu_num_color, $range, $rrd_dir, - $size; + $size, + $use_fqdn_hostname; + if (!$use_fqdn_hostname) { + $hostname = shortenFQDN($hostname); + } + $title = 'Memory'; if ($context != 'host') { $rrdtool_graph['title'] = $title; } else { - $rrdtool_graph['title'] = "$hostname $title last $range"; + $rrdtool_graph['title'] = "$title last $range"; } $rrdtool_graph['lower-limit'] = '0'; $rrdtool_graph['vertical-label'] = 'Bytes'; Modified: trunk/monitor-core/web/graph.d/metric.php =================================================================== --- trunk/monitor-core/web/graph.d/metric.php 2008-06-24 18:31:20 UTC (rev 1459) +++ trunk/monitor-core/web/graph.d/metric.php 2008-06-24 18:38:16 UTC (rev 1460) @@ -20,8 +20,13 @@ $size, $summary, $value, - $vlabel; + $vlabel, + $use_fqdn_hostname; + if (!$use_fqdn_hostname) { + $hostname = shortenFQDN($hostname); + } + $rrdtool_graph['height'] += 0 ; //no fudge needed switch ($context) { Modified: trunk/monitor-core/web/graph.d/network_report.php =================================================================== --- trunk/monitor-core/web/graph.d/network_report.php 2008-06-24 18:31:20 UTC (rev 1459) +++ trunk/monitor-core/web/graph.d/network_report.php 2008-06-24 18:38:16 UTC (rev 1460) @@ -11,14 +11,19 @@ $cpu_num_color, $range, $rrd_dir, - $size; + $size, + $use_fqdn_hostname; + if (!$use_fqdn_hostname) { + $hostname = shortenFQDN($hostname); + } + $title = 'Network'; $rrdtool_graph['height'] += $size == 'medium' ? 28 : 0 ; if ($context != 'host') { $rrdtool_graph['title'] = $title; } else { - $rrdtool_graph['title'] = "$hostname Network last $range"; + $rrdtool_graph['title'] = "$title last $range"; } $rrdtool_graph['lower-limit'] = '0'; $rrdtool_graph['vertical-label'] = 'Bytes/sec'; Modified: trunk/monitor-core/web/graph.d/packet_report.php =================================================================== --- trunk/monitor-core/web/graph.d/packet_report.php 2008-06-24 18:31:20 UTC (rev 1459) +++ trunk/monitor-core/web/graph.d/packet_report.php 2008-06-24 18:38:16 UTC (rev 1460) @@ -11,14 +11,19 @@ $cpu_num_color, $range, $rrd_dir, - $size; + $size, + $use_fqdn_hostname; + if (!$use_fqdn_hostname) { + $hostname = shortenFQDN($hostname); + } + $title = 'Packets'; $rrdtool_graph['height'] += $size == 'medium' ? 28 : 0 ; if ($context != 'host') { $rrdtool_graph['title'] = $title; } else { - $rrdtool_graph['title'] = "$hostname $title last $range"; + $rrdtool_graph['title'] = "$title last $range"; } $rrdtool_graph['lower-limit'] = '0'; $rrdtool_graph['vertical-label'] = 'Packets/sec'; Modified: trunk/monitor-core/web/graph.d/sample_report.php =================================================================== --- trunk/monitor-core/web/graph.d/sample_report.php 2008-06-24 18:31:20 UTC (rev 1459) +++ trunk/monitor-core/web/graph.d/sample_report.php 2008-06-24 18:38:16 UTC (rev 1460) @@ -71,7 +71,13 @@ $hostname, $range, $rrd_dir, - $size; + $size, + $use_fqdn_hostname; + + if (!$use_fqdn_hostname) { + $hostname = shortenFQDN($hostname); + } + // // You *MUST* set at least the 'title', 'vertical-label', and 'series' variables. // Otherwise, the graph *will not work*. @@ -82,7 +88,7 @@ // This will be turned into: // "Clustername $TITLE last $timerange", so keep it short } else { - $rrdtool_graph['title'] = "$hostname $title last $range"; + $rrdtool_graph['title'] = "$title last $range"; } $rrdtool_graph['vertical-label'] = 'Sample Percent'; $rrdtool_graph['height'] += $size == 'medium' ? 28 : 0 ; // Fudge to account for number of lines in the chart legend Modified: trunk/monitor-core/web/graph.php =================================================================== --- trunk/monitor-core/web/graph.php 2008-06-24 18:31:20 UTC (rev 1459) +++ trunk/monitor-core/web/graph.php 2008-06-24 18:38:16 UTC (rev 1460) @@ -175,7 +175,15 @@ $rrdtool_graph['title'] = $rrdtool_graph['title'] . " last $range"; } -if (isset($title)) { + +if (!$use_fqdn_hostname) { + $hostname = shortenFQDN($hostname); +} + + +if ( preg_match('/_report/', $graph) ) { + $rrdtool_graph['title'] = "$title $hostname ". $rrdtool_graph['title']; +} else if (isset($title)) { $rrdtool_graph['title'] = "$title " . $rrdtool_graph['title']; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |