diff host/admin/src/private/tools/admin.html.luan @ 1995:301a6561fb6b

add host/admin
author Franklin Schmidt <fschmidt@gmail.com>
date Fri, 04 Jul 2025 10:25:38 -0600
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/host/admin/src/private/tools/admin.html.luan	Fri Jul 04 10:25:38 2025 -0600
@@ -0,0 +1,70 @@
+require "site:/init.luan"
+local Luan = require "luan:Luan.luan"
+local error = Luan.error
+local Io = require "luan:Io.luan"
+local uri = Io.uri or error()
+local String = require "luan:String.luan"
+local Http = require "luan:http/Http.luan"
+require "java"
+local Runtime = require "java:java.lang.Runtime"
+local System = require "java:java.lang.System"
+local Server = require "java:goodjava.webserver.Server"
+
+
+return function()
+	local action = Http.request.parameters.action
+	if action == "gc" then
+		System.gc()
+		Http.response.send_redirect "admin.html"
+		return
+	end
+
+	Io.stdout = Http.response.text_writer()
+
+	local oneMega = 1024 * 1024;
+	local free = Runtime.getRuntime().freeMemory() / oneMega;
+	local total = Runtime.getRuntime().totalMemory() / oneMega;
+	local used = total - free;
+
+	local loadAverage = uri("os:uptime").read_text()
+	--local loadAverage = new String(result).replaceAll(".*average:","");
+
+	local threadPool = Server.threadPool
+	local threads = threadPool.getPoolSize()
+	local active_threads = threadPool.getActiveCount()
+%>
+<!doctype html>
+<html lang="en">
+	<body>
+
+		<table>
+			<tr>
+				<td>Free Memory</td>
+				<td>
+					<%=String.format("%.2f",free)%> Mb
+				</td>
+			</tr>
+			<tr>
+				<td>Used Memory</td>
+				<td><%=String.format("%.2f",used)%> Mb</td>
+			</tr>
+			<tr>
+				<td>Total Memory</td>
+				<td><%=String.format("%.2f",total)%> Mb</td>
+			</tr>
+			<tr>
+				<td>Load Average</td>
+				<td><%=loadAverage%></td>
+			</tr>
+			<tr>
+				<td>Threads</td>
+				<td><%= active_threads %> active, <%= threads - active_threads %> idle</td>
+			</tr>
+		<table>
+
+		<p><a href="admin.html?action=gc">Run GC</a></p>
+
+	</body>
+</html>
+<%
+end