Line 143:
Line 143:
Execution of dynamic content (CGI, PHP, SSI) : enabled
Execution of dynamic content (CGI, PHP, SSI) : enabled
Force secure connections : Disbaled
Force secure connections : Disbaled
+
+
So now we have the place holder for the Google Chart scripts .
+
+
8. Create the needed scripts ( working example below ) and transfer them to the iBay created above :
+
+
Script to monitor http memory usage (mysqli_apache_memory_used.php ) :
+
+
<?php
+
// Hostname: 127.0.0.1, username: your_user, password: your_pass, db: your_db
+
+
$mysqli = new mysqli('localhost', 'username', 'password', 'db_name');
+
+
// Oh no! A connect_errno exists so the connection attempt failed!
+
if ($mysqli->connect_errno) {
+
// The connection failed. What do you want to do?
+
// You could contact yourself (email?), log the error, show a nice page, etc.
+
// You do not want to reveal sensitive information
+
+
// Let's try this:
+
echo "Sorry, this website is experiencing problems.";
+
// Something you should not do on a public site, but this example will show you
+
// anyways, is print out MySQL error related information -- you might log this
+
echo "Error: Failed to make a MySQL connection, here is why: \n";
+
echo "Errno: " . $mysqli->connect_errno . "\n";
+
echo "Error: " . $mysqli->connect_error . "\n";
+
+
// You might want to show them something nice, but we will simply exit
+
exit;
+
}
+
// Perform an SQL query
+
//$query = "SELECT number, period, process_size, processors_used FROM performance LIMIT 50";
+
$query ="SELECT number, period, process_size, processors_used, mem_used FROM performance WHERE period > DATE_SUB(NOW(), INTERVAL 48 HOUR)";
+
if (!$result = $mysqli->query($query)) {
+
// Oh no! The query failed.
+
echo "Sorry, the website is experiencing problems.";
+
+
// Again, do not do this on a public site, but we'll show you how
+
// to get the error information
+
echo "Error: Our query failed to execute and here is why: \n";
+
echo "Query: " . $sql . "\n";
+
echo "Errno: " . $mysqli->errno . "\n";
+
echo "Error: " . $mysqli->error . "\n";
+
exit;
+
}
+
+
// Phew, we made it. We know our MySQL connection and query
+
// succeeded, but do we have a result?
+
if ($result->num_rows === 0) {
+
// Oh, no rows! Sometimes that's expected and okay, sometimes
+
// it is not. You decide. In this case, maybe actor_id was too
+
// large?
+
echo "We could not find a match , sorry about that. Please try again.";
+
exit;
+
}
+
$qresult = $mysqli->query($query);
+
$results = array();
+
+
while($res = $qresult->fetch_assoc()) {
+
$results[] = $res;
+
}
+
$curvechart_data = array();
+
foreach($results as $result)
+
{
+
//$curvechart_data[] = array($result['period'],(int)$result['process_size'], (int)$result['processors_used'],(int)$result['mem_used']);
+
$curvechart_data[] = array($result['period'],(int)$result['mem_used']);
+
}
+
$curvechart_data = json_encode($curvechart_data);
+
//echo $curvechart_data;
+
+
// The script will automatically free the result and close the MySQL
+
// connection when it exits, but let's just do it anyways
+
//$result->free();
+
//$mysqli->close();
+
+
+
$html =<<<XYZ
+
+
<html>
+
<head>
+
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
+
<script type="text/javascript">
+
google.load('visualization', '1.1', {packages: ['line']});
+
google.setOnLoadCallback(drawChart);
+
+
function drawChart() {
+
+
var data = new google.visualization.DataTable();
+
data.addColumn('string','Period');
+
//data.addColumn('number', 'No. Processors');
+
//data.addColumn('number', 'Process size');
+
data.addColumn('number', 'Memory Used');
+
data.addRows({$curvechart_data});
+
+
+
var options = {
+
chart: {
+
title: 'Apache HTTP Memory used ',
+
subtitle: 'in last 48 Hrs '
+
},colors:['red']
+
width: 1400,
+
height: 700
+
};
+
+
var chart = new google.charts.Line(document.getElementById('linechart_material'));
+
+
chart.draw(data, options);
+
}
+
</script>
+
</head>
+
<body>
+
<div id="linechart_material"></div>
+
</body>
+
</html>
+
+
XYZ;
+
+
echo $html;
+
echo date('l jS \of F Y h:i:s A');
+
+
?>