changed server load stats
This commit is contained in:
92
sys0-code/api/server_stats.php
Normal file
92
sys0-code/api/server_stats.php
Normal file
@@ -0,0 +1,92 @@
|
||||
<?php
|
||||
// Initialize the session and check if the user is authenticated
|
||||
session_start();
|
||||
include "../config/config.php";
|
||||
|
||||
// Perform authentication and role checks
|
||||
if (!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true || $_SESSION["role"][9] !== "1") {
|
||||
echo "Unauthorized access!";
|
||||
exit;
|
||||
}
|
||||
|
||||
// Sanitize session variables
|
||||
$username = htmlspecialchars($_SESSION["username"]);
|
||||
$id = intval($_SESSION["id"]);
|
||||
$color = htmlspecialchars($_SESSION["color"]);
|
||||
|
||||
// Server statistics retrieval
|
||||
|
||||
// Get server load
|
||||
$load = sys_getloadavg();
|
||||
$load_percentage = round(($load[0] / 4) * 100); // Assuming a 4-core processor
|
||||
|
||||
// Get CPU usage
|
||||
$cpu_usage = shell_exec("top -bn1 | grep 'Cpu(s)' | sed 's/.*, *\\([0-9.]*\\)%* id.*/\\1/' | awk '{print 100 - $1}'");
|
||||
$cpu_usage = round($cpu_usage, 2);
|
||||
|
||||
// Get RAM usage
|
||||
$ram_usage = shell_exec("free | grep Mem | awk '{print $3/$2 * 100.0}'");
|
||||
$ram_usage = round($ram_usage, 2);
|
||||
|
||||
// Get Disk usage
|
||||
$disk_usage = shell_exec("df -h / | grep / | awk '{print $5}'");
|
||||
|
||||
// Get server uptime
|
||||
$uptime = shell_exec("uptime -p");
|
||||
|
||||
// Output stats with Bootstrap styling
|
||||
|
||||
echo "
|
||||
<div class='col-md-6 mb-4'>
|
||||
<div class='card'>
|
||||
<div class='card-body'>
|
||||
<p class='stat-label'>CPU Usage: {$cpu_usage}%</p>
|
||||
<div class='progress'>
|
||||
<div class='progress-bar bg-danger' role='progressbar' style='width: {$cpu_usage}%' aria-valuenow='{$cpu_usage}' aria-valuemin='0' aria-valuemax='100'>{$cpu_usage}%</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='col-md-6 mb-4'>
|
||||
<div class='card'>
|
||||
<div class='card-body'>
|
||||
<p class='stat-label'>RAM Usage: {$ram_usage}%</p>
|
||||
<div class='progress'>
|
||||
<div class='progress-bar bg-warning' role='progressbar' style='width: {$ram_usage}%' aria-valuenow='{$ram_usage}' aria-valuemin='0' aria-valuemax='100'>{$ram_usage}%</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='col-md-6 mb-4'>
|
||||
<div class='card'>
|
||||
<div class='card-body'>
|
||||
<p class='stat-label'>Server Load (1 min avg): {$load[0]}</p>
|
||||
<div class='progress'>
|
||||
<div class='progress-bar bg-info' role='progressbar' style='width: {$load_percentage}%' aria-valuenow='{$load_percentage}' aria-valuemin='0' aria-valuemax='100'>{$load_percentage}%</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='col-md-6 mb-4'>
|
||||
<div class='card'>
|
||||
<div class='card-body'>
|
||||
<p class='stat-label'>Disk Usage: {$disk_usage}</p>
|
||||
<div class='progress'>
|
||||
<div class='progress-bar bg-success' role='progressbar' style='width: {$disk_usage}' aria-valuenow='{$disk_usage}' aria-valuemin='0' aria-valuemax='100'>{$disk_usage}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='col-md-12 mb-4'>
|
||||
<div class='card'>
|
||||
<div class='card-body'>
|
||||
<p class='stat-label'>Server Uptime: {$uptime}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
";
|
||||
?>
|
||||
@@ -75,6 +75,9 @@ async function delete_input(input,action,id,row){
|
||||
<a class="nav-link" href="debug.php?show=filament_settings" id="filament_settings_tab">Filamenteinstellungen</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="debug.php?show=srv_stats" id="srv_stats_tab">Serverstatistiken</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div id="printer_settings" style="display:none">
|
||||
<h1>Druckerfreigabe erzwingen (falls beim freigeben Fehlermeldungen angezeigt werden)</h1>
|
||||
@@ -295,9 +298,32 @@ async function delete_input(input,action,id,row){
|
||||
}
|
||||
echo("</tbody></table></div></div></div>");
|
||||
echo("</div>");
|
||||
|
||||
?>
|
||||
</div>
|
||||
|
||||
<div id="srv_stats" style="display:none">
|
||||
<div class="container my-5">
|
||||
<h1 class="text-center mb-4">Server Stats</h1>
|
||||
<div id="stats" class="row text-center">
|
||||
<!-- Stats will be dynamically loaded here via AJAX -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function refreshStats() {
|
||||
$.ajax({
|
||||
url: "/api/server_stats.php", // Load from server_stats.php, which includes auth and stats
|
||||
method: "GET",
|
||||
success: function (data) {
|
||||
$("#stats").html(data);
|
||||
}
|
||||
});
|
||||
}
|
||||
refreshStats();
|
||||
|
||||
setInterval(refreshStats, 1000);
|
||||
</script>
|
||||
</div>
|
||||
<?php
|
||||
test_queue($link);
|
||||
?>
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Server Stats</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="stats"></div>
|
||||
<script>
|
||||
function refreshStats() {
|
||||
location.reload();
|
||||
}
|
||||
|
||||
// Refresh stats every 1 second
|
||||
setInterval(refreshStats, 1000);
|
||||
|
||||
</script>
|
||||
<?php
|
||||
|
||||
// Get server load
|
||||
$load = sys_getloadavg();
|
||||
|
||||
// Get CPU usage
|
||||
$cpu_usage = shell_exec("top -bn1 | grep 'Cpu(s)' | sed 's/.*, *\\([0-9.]*\\)%* id.*/\\1/' | awk '{print 100 - $1\"%\"}'");
|
||||
|
||||
// Get RAM usage
|
||||
$ram_usage = shell_exec("free | grep Mem | awk '{print $3/$2 * 100.0\"%\"}'");
|
||||
|
||||
// Display results
|
||||
echo "Server Load: " . implode(", ", $load) . "<br>";
|
||||
echo "CPU Usage: " . $cpu_usage . "<br>";
|
||||
echo "RAM Usage: " . $ram_usage . "<br>";
|
||||
|
||||
?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user