# system overview echo "<H3>Overview</H3>\n"; $sql = "SELECT system, COUNT(jobid) AS jobcount, SUM(nproc*TIME_TO_SEC(walltime))/3600.0 AS cpuhours, NULL AS pct_util, COUNT(DISTINCT(username)) AS users, COUNT(DISTINCT(groupname)) AS groups FROM Jobs WHERE system LIKE '" . $_POST['system'] . "' AND ( " . dateselect("start", $_POST['start_date'], $_POST['end_date']) . " ) GROUP BY system ORDER BY " . $_POST['order'] . " DESC"; #echo "<PRE>\n".$sql."</PRE>\n"; echo "<TABLE border=1>\n"; echo "<TR><TH>system</TH><TH>jobcount</TH><TH>cpuhours</TH><TH>%util</TH><TH>users</TH><TH>groups</TH></TR>\n"; ob_flush(); flush(); $result = db_query($db, $sql); while ($result->fetchInto($row)) { $data = array(); $rkeys = array_keys($row); echo "<TR>"; foreach ($rkeys as $rkey) { if ($row[$rkey] == NULL) { $ndays = ndays($db, $row[0], $_POST['start_date'], $_POST['end_date']); if ($ndays[1] > 0) { $data[$rkey] = sprintf("%6.2f", 100.0 * $row[2] / $ndays[1]); } else { $data[$rkey] = "N/A"; } } else { $data[$rkey] = $row[$rkey]; } echo "<TD align=\"right\"><PRE>" . $data[$rkey] . "</PRE></TD>"; } echo "</TR>\n"; ob_flush(); flush(); } if ($_POST['system'] == "%") {
function jobstats_summary($db, $system, $start_date, $end_date) { $result = get_metric($db, $system, "", "cpuhours", $start_date, $end_date); $result->fetchInto($row); $jobcount = $row[0]; $cpuhours = $row[1]; echo "<P><B>" . $jobcount . " jobs run<BR>\n"; echo $cpuhours . " CPU-hours consumed"; $nproc = nprocs($system); if ($nproc > 0) { $data = ndays($db, $system, $start_date, $end_date); $ndays = $data[0]; $cpuhours_avail = $data[1]; if ($ndays > 0) { $avgutil = 100.0 * $cpuhours / $cpuhours_avail; printf(" (avg. %6.2f%% utilization over %d days)", $avgutil, $ndays); } } echo "<BR>\n"; $usercount = get_metric($db, $system, "", "usercount", $start_date, $end_date); $usercount->fetchInto($counts); $nusers = $counts[1]; $ngroups = $counts[2]; echo $nusers . " distinct users, " . $ngroups . " distinct groups"; echo "</B></P>\n"; }