$graph_url = "c={$sourceurl}&{$get_metric_string}&st={$localtime}"; $url = "./?c={$sourceurl}&{$get_metric_string}"; $alt_url = "<a href=\"./?p=2&{$graph_url}\">(physical view)</a>"; $class = "cluster"; } $cpu_num = $m["cpu_num"]['SUM'] ? $m["cpu_num"]['SUM'] : 1; $cluster_load15 = sprintf("%.0f", (double) $m["load_fifteen"]['SUM'] / $cpu_num * 100); $cluster_load5 = sprintf("%.0f", (double) $m["load_five"]['SUM'] / $cpu_num * 100); $cluster_load1 = sprintf("%.0f", (double) $m["load_one"]['SUM'] / $cpu_num * 100); $cluster_load = "{$cluster_load15}%, {$cluster_load5}%, {$cluster_load1}%"; $clusname = $source == $self ? '' : $source; $avg_cpu_num = find_avg($clusname, "", "cpu_num"); if ($avg_cpu_num == 0) { $avg_cpu_num = 1; } $cluster_util = sprintf("%.0f", (double) find_avg($clusname, "", "load_one") / $avg_cpu_num * 100); $sources[$source]["name"] = $name; $sources[$source]["cpu_num"] = $m["cpu_num"]['SUM']; $sources[$source]["url"] = $url; $sources[$source]["class"] = $class; # Initialize some variables for the $sources array to be past to the template since private sources # may not have these defined $sources[$source]["alt_view"] = ""; $sources[$source]["cluster_load"] = ""; $sources[$source]["cluster_util"] = ""; $sources[$source]["num_dead_nodes"] = ""; $sources[$source]["range"] = ""; $sources[$source]["graph_url"] = ""; $sources[$source]["base64img"] = ""; if ($localtime) { $sources[$source]["localtime"] = "<font size=\"-1\">Localtime:</font><br> " . date("Y-m-d H:i", $localtime);
function get_cluster_overview($showhosts, $metrics, $cluster, $range, $clustername, $data) { $cpu_num = !$showhosts ? $metrics["cpu_num"]['SUM'] : cluster_sum("cpu_num", $metrics); $data->assign("cpu_num", $cpu_num); if (isset($cluster['HOSTS_UP'])) { $data->assign("num_nodes", intval($cluster['HOSTS_UP'])); } else { $data->assign("num_nodes", 0); } if (isset($cluster['HOSTS_DOWN'])) { $data->assign("num_dead_nodes", intval($cluster['HOSTS_DOWN'])); } else { $data->assign("num_dead_nodes", 0); } $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); if (!$cpu_num) { $cpu_num = 1; } $cluster_load15 = sprintf("%.0f", (double) $load_fifteen_sum / $cpu_num * 100); $cluster_load5 = sprintf("%.0f", (double) $load_five_sum / $cpu_num * 100); $cluster_load1 = sprintf("%.0f", (double) $load_one_sum / $cpu_num * 100); $data->assign("cluster_load", "{$cluster_load15}%, {$cluster_load5}%, {$cluster_load1}%"); $avg_cpu_num = find_avg($clustername, "", "cpu_num"); if ($avg_cpu_num == 0) { $avg_cpu_num = 1; } $cluster_util = sprintf("%.0f", (double) find_avg($clustername, "", "load_one") / $avg_cpu_num * 100); $data->assign("cluster_util", "{$cluster_util}%"); $data->assign("range", $range); }
if( $v['TYPE']=="timestamp" or (isset($always_timestamp[$name]) and $always_timestamp[$name])) { $s_metrics_data[$name]["value"] = date("r", $v['VAL']); } else { $s_metrics_data[$name]["value"] = $v['VAL'] . " " . $v['UNITS']; } } } $data->assign("s_metrics_data", $s_metrics_data); # Add the average node utilization to the time & string metrics section: $avg_cpu_num = find_avg($clustername, $hostname, "cpu_num"); if ($avg_cpu_num == 0) $avg_cpu_num = 1; $cluster_util = sprintf("%.0f", ((double) find_avg($clustername, $hostname, "load_one") / $avg_cpu_num ) * 100); $data->assign("name", "Avg Utilization (last $range)"); $data->assign("value", "$cluster_util%"); # Show constant metrics. $c_metrics_data = null; if (isset($c_metrics) and is_array($c_metrics)) { $c_metrics_data = array(); ksort($c_metrics); foreach ($c_metrics as $name => $v ) { if (isset($v['TITLE'])) { $c_metrics_data[$name]["name"] = $v['TITLE']; }