# | Line 20 | Line 20 | |
---|---|---|
20 | # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
21 | # | |
22 | ||
23 | – | # Navigation for the i-scream reports. |
24 | – | # pjm2@ukc.ac.uk |
25 | – | # |
23 | # CONFIGURABLE CONSTANTS: - | |
24 | ||
25 | include("latest_config.inc.php"); | |
# | Line 32 | Line 29 | include("latest_config.inc.php"); | |
29 | ||
30 | include("iutils.inc.php"); | |
31 | ||
32 | + | if ($formMethod == "GET") { |
33 | + | $machine = isset($_GET['machine']) ? $_GET['machine'] : ""; |
34 | + | } |
35 | + | |
36 | + | |
37 | function printLine($title) { | |
38 | echo "<hr style=\"color:#9999ff;\">"; | |
39 | echo "<b>$title</b>"; | |
40 | } | |
41 | ||
42 | ||
43 | + | function showUptime($title, $value, $input, $graph="") { |
44 | + | $report = $value; |
45 | + | |
46 | + | $value = getPregMatch($value, $input); |
47 | + | if (!isset($value)) { |
48 | + | $value = "<i><font color=\"#999999\">not sent</font></i>"; |
49 | + | } |
50 | + | ?> |
51 | + | <table border="0" width="100%"> |
52 | + | <tr> |
53 | + | <td width="50%" align="right" valign="top"> |
54 | + | <b><?=$title?></b> |
55 | + | </td> |
56 | + | <td width="50%" align="left" valign="top"> |
57 | + | <? if (preg_match("/^[0-9]+\.?[0-9]*$/", $value)) { |
58 | + | linkToHistory($graph); |
59 | + | } ?> |
60 | + | <?=uptime($value)?> (<?=$value?> seconds)</td> |
61 | + | </tr> |
62 | + | </table> |
63 | + | <? |
64 | + | } |
65 | + | |
66 | + | |
67 | function showStat($title, $value, $input, $graph="") { | |
68 | ||
69 | $report = $value; | |
# | Line 73 | Line 99 | EOT; | |
99 | } | |
100 | ||
101 | ||
102 | + | # convert bytes to MB |
103 | + | function b2Mb($bytes) { |
104 | + | $mb = $bytes / (1024*1024); |
105 | + | return (int) $mb; |
106 | + | } |
107 | + | |
108 | + | |
109 | + | # Convert seconds uptime to something readable |
110 | + | function uptime($until) { |
111 | + | $day = date('z', $until); |
112 | + | $hour = date('G', $until); |
113 | + | if ($hour == 0) { # everything's an hour ahead, so roll back |
114 | + | $hour = 23; |
115 | + | $day = $day - 1; |
116 | + | } else { |
117 | + | $hour = $hour - 1; |
118 | + | } |
119 | + | $minute = date('i', $until); |
120 | + | $return = ""; |
121 | + | if ($day) { |
122 | + | $return = "$return$day"; |
123 | + | if ($day == 1) { |
124 | + | $return = "$return Day "; |
125 | + | } else { |
126 | + | $return = "$return Days "; |
127 | + | } |
128 | + | } |
129 | + | if ($hour) { |
130 | + | $return = "$return$hour"; |
131 | + | if ($hour == 1) { |
132 | + | $return = "$return Hour "; |
133 | + | } else { |
134 | + | $return = "$return Hours "; |
135 | + | } |
136 | + | } |
137 | + | $return = "$return$minute"; |
138 | + | if ($minute == 1) { |
139 | + | $return = "$return Min"; |
140 | + | } else { |
141 | + | $return = "$return Mins"; |
142 | + | } |
143 | + | return $return; |
144 | + | } |
145 | + | |
146 | + | |
147 | # show all disk information. | |
148 | function showDisks($diskRoot, $units, $input) { | |
149 | include("latest_config.inc.php"); | |
# | Line 86 | Line 157 | function showDisks($diskRoot, $units, $input) { | |
157 | $total = "$diskRoot.p$i.attributes.total"; | |
158 | $graph = preg_replace("/_/", "$hex_underscore", $mount); | |
159 | $graph = preg_replace("/\//", "$hex_slash", $graph); | |
160 | + | $graph = preg_replace("/\\\\/", "$hex_bslash", $graph); |
161 | + | $graph = preg_replace("/ /", "$hex_space", $graph); |
162 | + | $graph = preg_replace("/:/", "$hex_colon", $graph); |
163 | $totalinodes = getPregMatch("$diskRoot.p$i.attributes.totalinodes", $input); | |
164 | $freeinodes = getPregMatch("$diskRoot.p$i.attributes.freeinodes", $input); | |
165 | showBar("$name ($mount)<br>space used", $used, $total, $units, $input, "disk-$graph"); | |
166 | < | showBar("inodes used", (int) $freeinodes, (int) $totalinodes, " inodes", $input, "", "swap"); |
166 | > | showBar("inodes used", (float) $freeinodes, (float) $totalinodes, " inodes", $input, "", "swap"); |
167 | > | showStat("FS Type", "$diskRoot.p$i.attributes.fstype", $input); |
168 | print " <br><br>\n"; | |
169 | } | |
170 | else { | |
# | Line 108 | Line 183 | function showDiskIO($diskRoot, $input) { | |
183 | while(1) { | |
184 | $name = getPregMatch("$diskRoot.p$i.attributes.name", $input); | |
185 | if ($name) { | |
186 | + | $graph = preg_replace("/\//", "$hex_slash", $name); |
187 | + | $graph = preg_replace("/_/", "$hex_underscore", $graph); |
188 | + | $graph = preg_replace("/\\\\/", "$hex_bslash", $graph); |
189 | + | $graph = preg_replace("/ /", "$hex_space", $graph); |
190 | + | $graph = preg_replace("/:/", "$hex_colon", $graph); |
191 | print "<br><center><b>(Disk $name)</b></center>"; | |
192 | < | showStat("Read bytes (per sec)", "$diskRoot.p$i.attributes.rbytes", $input, "diskio-$name"); |
193 | < | showStat("Write bytes (per sec)", "$diskRoot.p$i.attributes.wbytes", $input, "diskio-$name"); |
192 | > | showStat("Read bytes (per sec)", "$diskRoot.p$i.attributes.rbytes", $input, "diskio-$graph"); |
193 | > | showStat("Write bytes (per sec)", "$diskRoot.p$i.attributes.wbytes", $input, "diskio-$graph"); |
194 | print " <br>\n"; | |
195 | } | |
196 | else { | |
# | Line 124 | Line 204 | function showDiskIO($diskRoot, $input) { | |
204 | # show all network information. | |
205 | function showNet($netRoot, $input) { | |
206 | include("latest_config.inc.php"); | |
207 | < | |
207 | > | |
208 | $i = 0; | |
209 | while(1) { | |
210 | $name = getPregMatch("$netRoot.p$i.attributes.name", $input); | |
211 | if ($name) { | |
212 | + | $graph = preg_replace("/\//", "$hex_slash", $name); |
213 | + | $graph = preg_replace("/_/", "$hex_underscore", $graph); |
214 | + | $graph = preg_replace("/\\\\/", "$hex_bslash", $graph); |
215 | + | $graph = preg_replace("/ /", "$hex_space", $graph); |
216 | + | $graph = preg_replace("/:/", "$hex_colon", $graph); |
217 | + | $graph = preg_replace("/\(/", "$hex_lbracket", $graph); |
218 | + | $graph = preg_replace("/\)/", "$hex_rbracket", $graph); |
219 | + | $graph = preg_replace("/\+/", "$hex_plus", $graph); |
220 | + | $graph = preg_replace("/#/", "$hex_hash", $graph); |
221 | print "<br><center><b>(Network Interface $name)</b></center>"; | |
222 | < | showStat("Received bytes (per sec)", "$netRoot.p$i.attributes.rx", $input, "net-$name"); |
223 | < | showStat("Transfered bytes (per sec)", "$netRoot.p$i.attributes.tx", $input, "net-$name"); |
222 | > | showStat("Received bytes (per sec)", "$netRoot.p$i.attributes.rx", $input, "net-$graph"); |
223 | > | showStat("Transfered bytes (per sec)", "$netRoot.p$i.attributes.tx", $input, "net-$graph"); |
224 | print " <br>\n"; | |
225 | } | |
226 | else { | |
# | Line 142 | Line 231 | function showNet($netRoot, $input) { | |
231 | } | |
232 | ||
233 | ||
234 | + | # show all mail queue information |
235 | + | function showMailQ($mailqRoot, $input) { |
236 | + | include("latest_config.inc.php"); |
237 | + | |
238 | + | $i = 0; |
239 | + | while(1) { |
240 | + | $name = getPregMatch("$mailqRoot.p$i.attributes.name", $input); |
241 | + | if ($name) { |
242 | + | print "<br><center><b>($name)</b></center>"; |
243 | + | $name = preg_replace("/\s+/", "", $name); |
244 | + | showStat("Messages in queue", "$mailqRoot.p$i.attributes.size", $input, "mailq-$name"); |
245 | + | print " <br>\n"; |
246 | + | } |
247 | + | else { |
248 | + | break; |
249 | + | } |
250 | + | $i++; |
251 | + | } |
252 | + | } |
253 | + | |
254 | + | |
255 | # Return a preg_match result. | |
256 | function getPregMatch($value, $input) { | |
257 | preg_match("/$value=([^\,\}]*)[\,\}]/", $input, $matches); | |
258 | + | if(!isset($matches[1])) { |
259 | + | return; |
260 | + | } |
261 | return $matches[1]; | |
262 | } | |
263 | ||
# | Line 169 | Line 282 | function showBar($title, $value, $max, $units, $input, | |
282 | $value = $max - $value; | |
283 | } | |
284 | ||
285 | + | if ($units == 'MB') { |
286 | + | $value = b2Mb ($value); |
287 | + | $max = b2Mb ($max); |
288 | + | } |
289 | + | |
290 | if(empty($max)) { | |
291 | $width = 1; | |
292 | } | |
# | Line 241 | Line 359 | function showBar($title, $value, $max, $units, $input, | |
359 | </b></font> | |
360 | This realtime report is too old to be considered recent | |
361 | EOT; | |
362 | + | } |
363 | + | else { |
364 | + | $warning = ""; |
365 | } | |
366 | ||
367 | echo <<<EOT |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |